Klonen durch final private __clone() verbieten?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

    Kommentar


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

      Kommentar

      Lädt...
      X