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

3

我今天早上遇到了一个问题,无法找到答案。我像通常在javascript中一样声明了一些php变量(错误地)。但出乎意料的是,代码实际上可以工作。我在Linux下测试了它,它可以正常工作。但在Windows的WAMP下就不能工作。

代码如下:

<?php

error_reporting(E_ALL);

$phones = [];

var_dump($phones);

?>

Linux中的结果:

array(0) {
}

在Windows中的结果:

Parse error: syntax error, unexpected '[' in D:\wamp\www\test.php on line 7

问题: 这是PHP中一个有效的数组声明吗?

3个回答

6

PHP 5.4.0提供了许多新功能:阅读更多

添加了短数组语法,例如:

$a = [1, 2, 3, 4]; or $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];

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


我接受了你的问题,因为它有链接,即使@Ardy Dedase先回答了。 - machineaddict

6

[]语法仅在PHP 5.4或更新版本中有效,请检查您Windows上的PHP版本。


2

您需要检查 Linux 和 Windows 机器上的 PHP 版本。

我怀疑您的 Linux 上有 PHP 5.4+,而 Windows 上只有 PHP 5.3.x 或更低版本。

建议您使用 array() 而不是在 PHP 5.4 中才有效的短数组语法 []


是的,就是这样。 - machineaddict

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接