Hallo Tom,
<?php ### reference.php ###
function show_string()
{
echo "<p>Hallo text</p>";
}
#--------------------------------------$text =& show_string();
$text;
?>
Das funktioniert nur scheinbar, aber nicht wirklich. Beweis:
<?php ### reference.php ###
function show_string()
{
echo "<p>Hallo text</p>";
}
#--------------------------------------
$text =& show_string();
$text;
$text;
?>
Nach Deiner Logik müsste es den Text zweimal ausgeben. Tut es aber nicht. Die Ausgabe erfolgt nämlich schon in der Zeile
$text =& show_string();
Die Zeile "$text;" macht gar nichts mehr, weil $text eine Referenz auf eine Variable mit dem Inhalt NULL ist. Außerdem sind solche Konstrukte böse, da show_string nicht explizit eine lokale Variable zurückliefert, von der eine Referenz gebildet werden kann, PHP 5 wird bei so einer Konstruktion aus dem Grund sogar einen Fehler liefern, wenn ich mich richtig erinnere.
Korrekt wäre in PHP:
<?php ### reference.php ###
function show_string()
{
echo "<p>Hallo text</p>";
}
$text = 'show_string';
$text ();
?>
PHP verhält sich - weil es eine Scriptsprache ist - eben anders, als einige andere Sprachen, wie beispielsweise C.
Viele Grüße,
Christian