Standardmäßig haben Sie innerhalb einer Funktion keinen Zugriff auf die äußeren Variablen.
Wenn Sie möchten, dass Ihre Funktion auf eine äußere Variable zugreifen kann, müssen Sie sie innerhalb der Funktion als global
deklarieren :
function someFuntion(){
global $myArr;
$myVal = //hier Verarbeitung, um Wert von $myVal zu bestimmen
$myArr[] = $myVal;
}
Weitere Informationen finden Sie unter Variablenbereich.
Aber beachten Sie, dass die Verwendung von globalen Variablen keine gute Praxis ist : dadurch ist Ihre Funktion nicht mehr unabhängig.
Eine bessere Idee wäre es, Ihre Funktion das Ergebnis zurückgeben zu lassen :
function someFuntion(){
$myArr = array(); // Am Anfang haben Sie ein leeres Array
$myVal = //hier Verarbeitung, um Wert von $myVal zu bestimmen
$myArr[] = $myVal; // Füge $myVal in das Array ein
return $myArr;
}
Rufen Sie die Funktion wie folgt auf :
$result = someFunction();
Ihre Funktion könnte auch Parameter entgegennehmen und sogar mit einem per Referenz übergebenen Parameter arbeiten :
function someFuntion(array & $myArr){
$myVal = //hier Verarbeitung, um Wert von $myVal zu bestimmen
$myArr[] = $myVal; // Füge $myVal in das Array ein
}
Rufen Sie die Funktion dann wie folgt auf :
$myArr = array( ... );
someFunction($myArr); // Die Funktion erhält $myArr und ändert es
Dabei :
- Ihre Funktion erhielt das externe Array als Parameter
- Und kann es ändern, da es als Referenz übergeben wird.
- Und es ist eine bessere Praxis als die Verwendung einer globalen Variablen : Ihre Funktion ist eine Einheit, unabhängig von externem Code.
Für weitere Informationen sollten Sie den Abschnitt Funktionen im PHP-Handbuch lesen und insbesondere die folgenden Unterabschnitte :