Mailinglisten-Archive |
On Friday 02 June 2006 08:36, Norbert Pfeiffer wrote:
> > Norbert schrieb:
> > > function irgendwas($var, &$foo) {
> > > }
> > > erzeugt einen Fehler mit PHP 4.4.1 unter WinXP
>
> Marco wrote:
> > kann ich nicht bestätigen.
>
> hmm,
> und was sollte ich jetzt machen - PC erschiessen ... ;-)
Deinen Testaufbau prüfen.
> Darueber hinaus ist es sehr unpraktisch, wenn man in der
> Deklaration festlegt, was uebergeben werden muss:
>
> - der Funktion ist es egal, ob sie mit einer Kopie oder
> auf dem Original werkelt, wenn sie nur arbeiten kann.
> D.h. man schraenkt ihre Verwendung unnoetig ein!
Nein ist es der funktion nicht. Wenn die Funktion eine Referenz erhält wirken
sich alle ändernden Operation auf die Originalvariable aus. Bei einer Kopie
nicht. d.h. bei den beiden Snippets
function foo($param) {
$param++;
}
$a = 1;
foo($a);
echo $a;
und
function foo(&$param) {
$param++;
}
$a = 1;
foo($a);
echo $a;
kommen zwei verschiedene Ergebnisse raus.
johannes
php::bar PHP Wiki - Listenarchive