Hi, ich habe mal eine frage. lese mir grad etwas php an und blicke durch folgendes nicht so recht durch: ich habe also eine funktion: function test($a){ $b = $a*0.10; return $b; } jetzt hab ich gelesen, dass eine echte Funktion diesen Rückgabewert hat. Ok. Doch die FUnktion funktioniert doch auch, wenn ich so schreibe function test($a){ echo ($a*0.10); } worin soll da der unterschied liegen? Laut meinem buch ist es dann keine funktion mehr sondern eine prozedur aber vom ergebnis doch das gleiche
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
Nein, das Ergebnis ist nicht das Gleiche. Eine Funktion besitzt einen Wert, d.h. Du kannst sie nutzen wie einen Wert:
function test() {
return 1;
}
$a = test();
ie Funktion hat den Wert 1, den sie zurück gibt, dadurch hat $a den Wert 1 durch die Zuweisung. Verleiche dazu jetzt:
function test() {
echo 1;
}
$a = test();
Jetzt wird 1 an den Browser ausgegeben, aber $a hat keinen Wert, da test() keinen Wert hat Es tut nut etwas, aber es gibt nichts zurück.
Falls Du dich jetzt nach dem Sin fragen solltest, versuch mal folgendes:
function multi($a, $b) {
return $a * $b;
}
$c = multi(5, 2) * 10;
Das geht, $c hat den Wert 100. Jetzt versuche folgendes:
function multi($a, $b) {
echo $a * $b;
}
$c = multi(5, 2) * 10;
Was passiert? Es wird 10 ausgegeben (man wil nciht immer nur was an den Browser ausgeben, manchmal braucht man das Ergebnis auch um weiter zu arbeiten) und welchen Wert hat $c? $c hat den Wert 0!