PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variable mit Funktion ändern?


ascer
29.11.2007, 12:45:15
Hallo Leute,

hab ne ganz simple Anfängerfrage:
Wie kann ich eine Variable, die ich einer Funktion als Argument übergebe, geändert wieder zurückgeben?

Mein Lösungsansatz war:
<?php
function test( &$arg1 ){
$arg1++;
}

$zahl = 0;

test( $zahl );
?>

Ich habe aber irgendwo mal gelesen, dass es veraltet sein soll mit einem "&" in der "Argumentenübergabe" einer Funktion PHP klar zu machen, das man die Variable geändert zurückbekommen will...stimmt das? bzw. gibts da ne bessere Lösung oder ist das so schon in Ordnung?

vt1816
29.11.2007, 13:05:46
<?php

function test($arg1)
{
return ++$arg1;
}

$zahl = 0;

echo test($zahl);

?>

defabricator
29.11.2007, 13:19:37
Ich habe aber irgendwo mal gelesen, dass es veraltet sein soll mit einem "&" in der "Argumentenübergabe" einer Funktion PHP klar zu machen, das man die Variable geändert zurückbekommen will...stimmt das?Das stimmt. Den Fall hast Du aber garnicht. Du hast es PHP in der Funktiondeklaration "klar" gemacht und das ist auch weiterhin erlaubt/erwünscht.

Das andere ist<?php
function test($arg1)
{
++$arg1;
}

$zahl = 0;
test( &$zahl ); // call time pass reference
echo $zahl;
?>
Mehr dazu: http://de.php.net/manual/en/ini.core.php#ini.allow-call-time-pass-reference

ascer
02.12.2007, 20:54:43
ok, danke!