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

Cor*_*rey 10 php arrays push declaration

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

$myArray = array('my message');
Run Code Online (Sandbox Code Playgroud)

但是myArray如果已经存在,使用此代码将被覆盖.

如果我使用array_push,它必须已经存在.

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

否则,它会叮叮当当.

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

OIS*_*OIS 31

这里:

$myArray[] = 'my message';
Run Code Online (Sandbox Code Playgroud)

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

  • 这很奇怪,但这是真的。PHP 不会触发任何错误/警告/通知。 (2认同)

And*_*ech 7

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

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

array_push($myArray, 'my message');
Run Code Online (Sandbox Code Playgroud)