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?

Foi útil?

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');
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top