php: spingendo verso un array che potrebbe esistere o meno
-
20-08-2019 - |
Domanda
Voglio creare un array con un messaggio.
$myArray = array('my message');
Ma usando questo codice, myArray
verrà sovrascritto se esistesse già.
Se uso array_push
, deve già esistere.
$myArray = array(); // <-- has to be declared first.
array_push($myArray, 'my message');
Altrimenti, sbatterà.
C'è un modo per far funzionare il secondo esempio sopra, senza prima cancellare $myArray = array();
?
Soluzione
Verifica se l'array esiste per primo e, in caso contrario, crealo ... quindi aggiungi l'elemento, sapendo che l'array sarà sicuramente definito prima:
if (!isset($myArray)) {
$myArray = array();
}
array_push($myArray, 'my message');
Altri suggerimenti
Qui:
$myArray[] = 'my message';
$ myArray deve essere un array o non impostato. Se contiene un valore che è una stringa, un numero intero o un oggetto che non implementa l'arrayaccess, fallirà.
Dovresti usare is_array (), non isset. Utile se myArray viene impostato da una funzione che restituisce un array o una stringa (-1 in caso di errore, ad esempio)
Questo eviterà errori se myArray è dichiarato come un array non altrove.
if(is_array($myArray))
{
array_push($myArray,'my message');
}
else
{
$myArray = array("my message");
}
if ($myArray) {
array_push($myArray, 'my message');
}
else {
$myArray = array('my message');
}
La modalità OIS funzionerà.
o
if (!isset($myArray))
$myArray=array();
array_push($myArray, 'message');