Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Die Krux mit den Referenzen (die Zweite) [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Die Krux mit den Referenzen (die Zweite)


 
Maranello-550
28-09-2005, 00:30 
 
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:

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'


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


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'

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???

 
Maranello-550
28-09-2005, 11:11 
 
Keiner eine Idee?

Sollte ich etwa einen Fehler in der Zend-Engine entdeckt haben? ;)

 
TobiaZ
28-09-2005, 11:12 
 
Keiner eine Idee? Ungelesen, warum drängelst du so??? :teach:

 
Maranello-550
28-09-2005, 11:17 
 
Ungeduld und fehlende Erklärungsansätze meinerseits. :confused:

 
TobiaZ
28-09-2005, 11:20 
 
Die Frage war eher rhetorisch ;)

 
Maranello-550
28-09-2005, 14:31 
 
Konnte jemand denselben Fehler feststellen oder liegt es an meiner PHP-Version (4.3.1) ?

 
inder
28-09-2005, 16:29 
 
Also bei mir, irgendeine PHP Version 5, funktionieren alle drei Beispiele einwandfrei.

 
penizillin
28-09-2005, 16:35 
 
v5.0.4:

alle 3 schippsel geben JUHU aus.

v4.3.11:

1. JUHU
2. NULL
3. JUHU

kann mir das verhalten der 4-er auch nicht erklären.

 
Maranello-550
28-09-2005, 16:46 
 
Danke für die Prüfung,... ich bin also doch nicht verrückt ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:04 Uhr.