php:推送到可能存在或不存在的数组

时间:2008-12-08 21:41:01

标签: php arrays declaration push

我想创建一个带有消息的数组。

$myArray = array('my message');

但是使用此代码,myArray如果已存在则会被覆盖。

如果我使用array_push,则必须已存在。

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

否则,它会叮叮当当。

有没有办法让上面的第二个例子工作,而不先清除$myArray = array();

5 个答案:

答案 0 :(得分:30)

下面:

$myArray[] = 'my message';

$ myArray必须是数组或未设置。如果它包含一个不执行arrayaccess的字符串,整数或对象的值,它将失败。

答案 1 :(得分:7)

检查数组是否首先存在,如果不存在,则创建它...然后添加元素,知道数组肯定会在事先定义:

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

array_push($myArray, 'my message');

答案 2 :(得分:3)

你应该使用is_array(),而不是isset。 如果myArray是从返回数组或字符串的函数设置的,则有用(例如,出错时为-1)

如果将myArray声明为不是其他地方的数组,这将防止错误。

if(is_array($myArray))
{
   array_push($myArray,'my message');
}
else
{
   $myArray = array("my message");
}

答案 3 :(得分:0)

if ($myArray) {
  array_push($myArray, 'my message');
}
else {
  $myArray = array('my message');
}

答案 4 :(得分:0)

OIS的方式将起作用。

或者

if (!isset($myArray)) 
    $myArray=array();
array_push($myArray, 'message');