php: empurrando para uma matriz que pode ou não existir
-
20-08-2019 - |
Pergunta
Eu quero criar uma matriz com uma mensagem.
$myArray = array('my message');
Mas usando este código, myArray
vai ter substituído se ele já existia.
Se eu usar array_push
, tem que existir.
$myArray = array(); // <-- has to be declared first.
array_push($myArray, 'my message');
Caso contrário, ele irá Bink.
Existe uma maneira de fazer o segundo exemplo acima trabalho, sem primeiro $myArray = array();
clearing?
Solução
Verifique se a matriz existe em primeiro lugar, e se não, criá-lo ... em seguida, adicione o elemento, sabendo que a matriz irá certamente ser definida antes da mão:
if (!isset($myArray)) {
$myArray = array();
}
array_push($myArray, 'my message');
Outras dicas
Aqui:
$myArray[] = 'my message';
$ myArray tem que ser uma matriz ou não definido. Se ele tem um valor que é uma cadeia, inteiro ou objeto que não implementa ArrayAccess, ele irá falhar.
Você deve usar is_array (), não isset. Úteis se meuArray está a ser definida a partir de uma função que retorna uma matriz ou uma cadeia (-1 em caso de erro, por exemplo)
Isso vai evitar que erros se myArray é declarado como um não um array em outro lugar.
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 way' vai funcionar.
ou
if (!isset($myArray))
$myArray=array();
array_push($myArray, 'message');