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();?

È stato utile?

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');
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top