Bisher habe ich Klassen so verstanden, das in der Klassendefinition anzahl und namen der Attribute ( ergo Klassenvariablen ) festgelegt werden und im Konstruktur initalisiert werden.
Einem Objekt können dann keine weiteren Attribute hinzugefügt werden
Beim proggen einer Klasse bin ich aber auf folgende "Merkwürdigkeit" gestoßen:
PHP-Code:
<?php
/** Filename: classtest.class*/
class test
{
var $foo;
var $bar;
function test(){
$this->foo = "ich bin foo";
$this->bar = "ich bin bar";
}
function WiesoGehtDas(){
$this->foobar = "foobar";
}
}
?>
PHP-Code:
<?php
/** Filename: classtest.php*/
include("classtest.class");
$obj = new test();
$obj->WiesoGehtDas();
echo "<pre>";
echo print_r($obj);
echo "<pre>";
echo $obj->foobar;
?>
Kommentar