Hallo,
ich versuche einer statischen Variable einen Pointer zuzuweisen.
Warum wird der Pointer in Class1 nicht in der statischen Variable gespeichert, aber die Kopie in Class2?
Danke schonmal fürs lesen und vllt. antworten
ich versuche einer statischen Variable einen Pointer zuzuweisen.
PHP:
class Class1 {
function method() {
static $obj;
echo 'Before: <br>';
var_dump($obj);
if(!isset($obj)) {
$obj =& new stdClass;
}
echo 'After: <br>';
var_dump($obj);
return $obj;
}
}
class Class2 {
function method() {
static $obj;
echo 'Before: <br>';
var_dump($obj);
if(!isset($obj)) {
$obj = new stdClass;
}
echo 'After: <br>';
var_dump($obj);
return $obj;
}
}
$obj1 = Class1::method();
$obj2 = Class2::method();
echo '<br><br>';
$obj1 = Class1::method();
$obj2 = Class2::method();
Code:
Before: NULL
After: object(stdClass)#1 (0) { }
Before: NULL
After: object(stdClass)#2 (0) { }
Before: NULL
After: object(stdClass)#3 (0) { }
Before: object(stdClass)#2 (0) { }
After: object(stdClass)#2 (0) { }
Warum wird der Pointer in Class1 nicht in der statischen Variable gespeichert, aber die Kopie in Class2?
Danke schonmal fürs lesen und vllt. antworten