phpbar.de logo

Mailinglisten-Archive

[php] verwirrende Effekte bei Klassenbenutzung

[php] verwirrende Effekte bei Klassenbenutzung

Johannes Schlueter schlueter at phpbar.de
Fre Jun 2 08:46:59 CEST 2006


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