声明php数组为javascript数组的情况

mac*_*ict 3 php arrays

我无法找到这种情况的答案,我今天早上偶然发现了这种情况.我已经声明了一些php变量,就像我通常在javascript中那样(错误地).我对代码实际工作感到惊讶.我在Linux下进行了测试,它运行正常.Windows下的WAMP不起作用.

代码:

<?php

error_reporting(E_ALL);

$phones = [];

var_dump($phones);

?>
Run Code Online (Sandbox Code Playgroud)

Linux中的结果:

array(0) {
}
Run Code Online (Sandbox Code Playgroud)

Windows中的结果:

Parse error: syntax error, unexpected '[' in D:\wamp\www\test.php on line 7
Run Code Online (Sandbox Code Playgroud)

问题:这是php中数组的有效声明吗?

Mat*_*ari 6

[]语法只适用于PHP 5.4或更新版本,检查Windows的PHP版本.


Tec*_*hie 6

PHP 5.4.0提供了广泛的新功能:阅读更多内容

添加了短数组语法,

例如

$a = [1, 2, 3, 4]; or $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
Run Code Online (Sandbox Code Playgroud)

版本低于5.4.0不支持以上语法.根据我的理解,您可能在Linux和Windows中运行不同版本的PHP.使用phpinfo()检查PHP版本.