Hallo Leute!
(zweiter Thread zum selben Thema, wobei erster Thread jetzt, glaube ich, gelöscht wurde)
Ich musste mich heute ausführlich mit Referenzen beschäftigen. Dabei bin ich auf einen Fehler in meinem Skript gestoßen, den ich mir nicht erklären kann:
Dieser Fehler scheint nur bei Objekten und im Umgang mit Methoden aufzutauchen. Ich habe Ähnliches mit Funktionen und globalen Variablen versucht, wobei nie ein Fehler auftrat.
Obwohl ich dachte, ich wisse über Referenzen in php ganz gut bescheid, werfen sich hier doch einige Fragen auf, die ich mir einfach nicht beantworten kann.
Was ist da los???
(zweiter Thread zum selben Thema, wobei erster Thread jetzt, glaube ich, gelöscht wurde)
Ich musste mich heute ausführlich mit Referenzen beschäftigen. Dabei bin ich auf einen Fehler in meinem Skript gestoßen, den ich mir nicht erklären kann:
PHP-Code:
class test
{
var $start;
function test()
{
$result =& $this->ref();
$this->start = 'JUHU';
var_export($result);
}
function &ref()
{
$output = FALSE;
$this->start = $output; // man achte auf diese Stelle
return $this->start;
}
}
$xy = new test; // Funktioniert! Ausgabe: 'JUHU'
PHP-Code:
class test
{
var $start;
function test()
{
$result =& $this->ref();
$this->start = 'JUHU';
var_export($result);
}
function &ref()
{
$output = FALSE;
return $this->start = $output; // hier gucken
}
}
$xy = new test; // Funktioniert nicht! Ausgabe: NULL
PHP-Code:
class test
{
var $start;
function test()
{
$result =& $this->ref();
$this->start = 'JUHU';
var_export($result);
}
function &ref()
{
return $this->start = FALSE; // hier!
}
}
$xy = new test; // Funktioniert wieder! Ausgabe: 'JUHU'
Obwohl ich dachte, ich wisse über Referenzen in php ganz gut bescheid, werfen sich hier doch einige Fragen auf, die ich mir einfach nicht beantworten kann.
Was ist da los???
Kommentar