Frage

Ich möchte ein Array mit einer Nachricht erstellen.

$myArray = array('my message');

Aber diesen Code verwenden, wird myArray überschrieben, wenn es bereits existierte.

Wenn ich array_push verwenden, muss es bereits vorhanden sein.

$myArray = array(); // <-- has to be declared first.
array_push($myArray, 'my message');

Ansonsten wird es Bink.

Gibt es eine Möglichkeit das zweite Beispiel oben Arbeit zu machen, ohne zuerst Clearing $myArray = array();?

War es hilfreich?

Lösung

Überprüfen Sie, ob das Array zuerst vorhanden ist, und wenn sie es nicht schaffen wird ... dann das Element hinzufügen, wohl wissend, dass das Array wird sicherlich vor der Hand definiert werden:

if (!isset($myArray)) {
    $myArray = array();
}

array_push($myArray, 'my message');

Andere Tipps

Hier:

$myArray[] = 'my message';

$ arr hat ein Array oder nicht gesetzt sein. Wenn es einen Wert hält, die ein String, Integer oder Objekt, das nicht Arrayaccess nicht implementiert, wird es scheitern.

Sie sollten verwenden is_array (), nicht isset. Nützlich, wenn myArray wird aus einer Funktion eingestellt, die ein Array zurückgibt oder eine Zeichenfolge (-1 bei einem Fehler zum Beispiel)

Dies wird Fehler vermeiden, wenn myArray als nicht ein Array irgendwo anders deklariert wird.

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');
}

OIS‘Art und Weise funktioniert.

oder

if (!isset($myArray)) 
    $myArray=array();
array_push($myArray, 'message');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top