Klonen durch final private __clone() verbieten?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Klonen durch final private __clone() verbieten?

    Lese gerade
    Referenzen

    dort steht folgendes Zitat:
    Soll das Klonen eines Objektes vollständig unterbunden werden, ist die __clone-Methode als final private zu deklarieren.
    Doch folgendes funktioniert ja dann trotzdem, warum überhaupt das final?

    PHP Code:
    class kloner
    {
        public 
    $attr;    
        final private function 
    __clone()
        {
        }
        public function 
    set($s)
        {
            
    $this->attr=$s;
        }
        public function 
    cl()
        {
            return clone 
    $this;
        }
    }
    echo 
    '<pre>';
    $t = new kloner();
    $t->set('orig');
    $c $t->cl();
    print_r($c); 

  • #2
    Aus der selben Klasse geht es IMMER!
    Dank dem Private nicht aus abgeleiteten Klassen heraus, oder gar von weit außen.
    Final deswegen, damit keiner auf die Idee kommt das nochmal zu überschreiben.
    Wir werden alle sterben

    Comment


    • #3
      Dann habe ich es nur falsch verstanden, danke

      Comment

      Working...
      X