如何在PHP中正确地declare/define一个关联数组?

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

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

方式一:

<!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>

方式二:

<!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 文件设置进行任何更改的情况下在我的网页上显示错误和警告?

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

您在定义数组后忘记了 ;。 并且在定义数组时也不要使用 [] 。 More info on array's.

$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);