如何在PHP中正确地声明/定义关联数组


How to declare/define an associative array properly in PHP?

我写了一个程序来定义一个名为$aFilter的关联数组,并试图打印它,但我不能。我尝试了两种方法来达到这个目的,但都没有成功。以下是我尝试过的两种方法。

方式1:

<!DOCTYPE html>
<html>
<body>
<?php
$aFilter = Array
        (
            ['pages'] => 1,
            ['photo'] => 1,
            ['link'] => 1,
            ['event'] => 1,
            ['friend'] => 1,
            ['user_status'] => 1,
            ['poll'] => 1,
            ['quiz'] => 1,
            ['market'] => 1,
            ['apps'] => 1
        )
        print_r($aFilter);
?>
</body>
</html>

方式2:

<!DOCTYPE html>
<html>
<body>
<?php
$aFilter = Array
        (
            ['pages'] => 1
            ['photo'] => 1
            ['link'] => 1
            ['event'] => 1
            ['friend'] => 1
            ['user_status'] => 1
            ['poll'] => 1
            ['quiz'] => 1
            ['market'] => 1
            ['apps'] => 1
        )
        print_r($aFilter);
?>
</body>
</html>

执行上述两个代码后,我得到空白的白色屏幕。没有任何错误或警告。为什么会这样呢?在不更改php.ini文件设置的情况下,我如何在我的网页上显示错误和警告?

有人能纠正我犯的错误并帮助我吗?

您在定义数组后忘记了;。在定义数组时也不要使用[]。

$aFilter = Array(
            'pages' => 1,
            'photo' => 1,
            'link' => 1,
            'event' => 1,
            'friend' => 1,
            'user_status' => 1,
            'poll' => 1,
            'quiz' => 1,
            'market' => 1,
            'apps' => 1
        );
        print_r($aFilter);

print_r()以人类可读的方式显示有关变量的信息。这不是你需要写的代码

两种方法都缺少数组定义后的;,方法2缺少每个数组元素后的, s。此外,两种方式都应该使用'elName' => 'elValue',而不是['elName'] => 'elValue',

问题是:-

  1. 忘记了;在定义数组之后。
  2. 当你硬编码的值,你需要把索引没有括号。

所以这样写:-

$aFilter = Array(
            'pages' => 1,
            'photo' => 1,
            'link' => 1,
            'event' => 1,
            'friend' => 1,
            'user_status' => 1,
            'poll' => 1,
            'quiz' => 1,
            'market' => 1,
            'apps' => 1
        );
        print_r($aFilter);