Hier mal ein Testcode.
Führt ihn nicht aus, ratet mal lieber, was das Ding ausgibt:
<?php error_reporting(0); class apple { var $bar1; var $bar2; function apple($bar1, $bar2) { $this->$bar1 = $bar1; $this->$bar2 = $bar2; echo "Im Apfelkonstruktor\n"; var_dump($this->$bar1); var_dump($this->$bar2); } function make_foo() { $temp = $this->$bar1; $this->$bar1 = $this->$bar2; $this->$bar2 = $temp; } function print_out() { echo "Ich bin ein Apfel:\n"; var_dump($this->$bar1); var_dump($this->$bar2); } } class pear { var $bar1; var $bar2; function pear($bar1, $bar2) { $this->bar1 = $bar1; $this->bar2 = $bar2; echo "Im Birnenkonstruktor\n"; var_dump($this->bar1); var_dump($this->bar2); } function make_foo() { $temp = $this->bar1; $this->bar1 = $this->bar2; $this->bar2 = $temp; } function print_out() { echo "Ich bin eine Birne:\n"; var_dump($this->bar1); var_dump($this->bar2); } } $apple = new apple("apfel1", "apfel2"); $pear = new pear("birne1", "birne2"); $apple->print_out(); $pear->print_out(); $apple->make_foo(); $pear->make_foo(); $apple->print_out(); $pear->print_out(); ?>
Ich habe das Error Reporting abgeschaltet, weil die Warnung keinen Sinn gibt.
(mir ist schon klar, was bei apple nicht hinhaut. aber warum kann der interpreter nicht einen fatal_error werfen?)