Dieter: Unterschied call by value vs. call by reference

Beitrag lesen

Hi.

Du könntest in diesem Fall ($a, $b und $c) in ein Array packen, dies zurückgeben, dann wieder aufdröseln und den ursprünglichen $a, $b, $c zuweisen - ein bisschen umständlich. Ausserdem: Vielleicht willst du auch noch so etwas wie einen Status zurückgeben, wo soll der dann hin, auch ins Array?

Mit CBR geht das dann hingegen recht "elegant":

function foo (&$a, &$b, &$c) {
   //Tue irgendwas

$completed = true;
   return($completed);
}

if (foo ($a, $b, $c)) {
   echo "Everything's fine";
}
else {
   echo "Wohoo, something bad happened";
}

Programmieren habe ich in anderen Sprachen als PHP gelernt. Ich hatte anfangs Probleme mit dem Konzept, daß globale Variablen nur innerhalb der Hauptroutine und nicht in Subroutinen bekannt sind. Das schien mir dem Sinn von global zu widersprechen. Mittlerweile habe ich mich aber daran gewöhnt und finde, es hat Vorteile, schlampigen, unübersichtlichen Programmierstil zu vermeiden. CBR widerspricht diesem Prinzip. Deshalb wollte ich in Erfahrung bringen, wie man es umgehen kann bzw. ob CBR in gewissen Situationen nicht doch vorteilhaft ist. Wenn überhaupt, würde ich einen CBR, der beim Aufruf konstituiert wird, bevorzugen. Das hat auch, wie Du geschrieben hast, den Vorteil, die Funktion sowohl CBV als auch CBR einzusetzen.