我想创建一个带有消息的数组。
$myArray = array('my message');
但是使用此代码,myArray
如果已存在则会被覆盖。
如果我使用array_push
,则必须已存在。
$myArray = array(); // <-- has to be declared first.
array_push($myArray, 'my message');
否则,它会叮叮当当。
有没有办法让上面的第二个例子工作,而不先清除$myArray = array();
?
答案 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');