PHP数组键是否需要用引号括起来?

时间:2009-09-04 20:06:07

标签: php arrays syntax

下面哪一项是正确的?第一个代码在$ _GET数组中没有引号,第二个代码没有引号,我知道当它是一个文本字符串时你应该有它们但在这种情况下它是一个变量,如果键是一个数字呢?

没有引号

function arg_p($name, $default = null) {
  return (isset($_GET[$name])) ? $_GET[$name] : $default;
}

带引号

function arg_p($name, $default = null) {
  return (isset($_GET['$name'])) ? $_GET['$name'] : $default;
}

3 个答案:

答案 0 :(得分:10)

第一个将使用$name的值作为键,而第二个将使用文字字符串'$name'作为键。

答案 1 :(得分:7)

使用PHP,$_GET["$name"]$_GET[$name]是相同的,因为PHP将评估双引号内的变量。这将返回变量$name存储的密钥。

但是,$_GET['$name']会搜索$name本身的密钥,而不是变量$name包含的密钥。

如果密钥是一个数字,$_GET[6]$_GET['6']$_GET["6"]在语法上都是相同的。

答案 2 :(得分:2)

  • 如果密钥是变量

    $阵列[$键];

你不必引用它。

  • 但如果它是一个文字字符串,你必须(如果你不用引号括起来,它不是一个字符串)

    $阵列[ '的myKey'];

如果你这样做,你会收到通知

$array[mykey];