Rolf B: erledigt, habe das Ergebnis falsch abgefragt

Beitrag lesen

Hallo Linuchs,

ja, sagt mir die PHP Sandbox auch gerade.

Besser fände ich übrigens das Statement

global $arr_projekt;

Sodann gibt's die Möglichkeit einer Closure - wobei ich nicht weiß, ob Du in deinem Fall die Funktion als anonyme Funktion schreiben kannst. Die use-Klausel gibt's nur für die.


$func = function() use ($arr_projekt) {
   return $arr_projekt['img_veranstaltungen'];
}

echo $func(); // gibt 3 aus

Und noch besser fände ich eine Programmstruktur, wo Du keinen globals-Zugriff verwendest, sondern benötigte Daten als Argument übergibst. Funktionen, die aus ihrem Scope hinausgreifen, sind ein Unfall, der darauf wartet, zu passieren. Die Übergabe eines Arrays macht nicht mehr Aufwand als die Übergabe einer Zahl, weil PHP lediglich einen Verweis übergibt (aber beim ersten Schreibzugriff auf das Array eine Kopie fertigt - "copy-on-write").

Falls Du das Array in der Funktion verändern musst, übergib es als Referenz.

Rolf

--
sumpsi - posui - obstruxi