PHP数组键需要用引号括起来吗?
下面哪一个是正确的?第一个代码在$\u GET数组中没有引号,第二个有引号,我知道当它是一个文本字符串时应该有引号,但在本例中它是一个变量,如果键是一个数字呢 无报价PHP数组键需要用引号括起来吗?,php,arrays,syntax,Php,Arrays,Syntax,下面哪一个是正确的?第一个代码在$\u GET数组中没有引号,第二个有引号,我知道当它是一个文本字符串时应该有引号,但在本例中它是一个变量,如果键是一个数字呢 无报价 function arg_p($name, $default = null) { return (isset($_GET[$name])) ? $_GET[$name] : $default; } 引用 function arg_p($name, $default = null) { return (isset($_GE
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;
}
第一个将使用
$name
的值作为键,而第二个将使用文本字符串'$name'
作为键。第一个将使用$name
的值作为键,而第二个将使用文本字符串'$name'
作为键。使用PHP,$\u GET[“$name”]
和$\u GET[$name]
是相同的,因为PHP将在双引号内计算变量。这将返回变量$name
存储的任何内容的键
但是,$\u GET['$name']
将搜索$name
本身的键,而不是变量$name
包含的任何内容
如果键是一个数字,$\u GET[6]
、$\u GET['6']
和$\u GET['6']
在语法上都是相等的。对于PHP,$\u GET[“$name”]
和$\u GET[$name]
是相同的,因为PHP将在双引号内计算变量。这将返回变量$name
存储的任何内容的键
但是,$\u GET['$name']
将搜索$name
本身的键,而不是变量$name
包含的任何内容
如果键是一个数字,$\u GET[6]
、$\u GET['6']
和$\u GET[“6”]
在语法上都是相等的。- 如果键是一个变量 $array[$key]
- 但如果它是文本字符串,则必须(如果不将其括在引号中,则它不是字符串) $array['myKey']
$array[mykey];
- 如果键是一个变量 $array[$key]
- 但如果它是文本字符串,则必须(如果不将其括在引号中,则它不是字符串) $array['myKey']
$array[mykey];
括号是
()
而不是'
。后者是单引号或撇号。当你说括号()时,你指的是()还是括号[]?如果我没有完全困惑,或者你编辑了这篇文章,那么你的两个案例之间的唯一区别似乎是“$name”周围的单引号。Gumbo的答案是正确的。另外,我要指出,在这种情况下,没有单引号的版本几乎肯定是一个错误。无论$name的值是多少,它的行为都是一样的。另外,不要试图让您感到困惑,但是$\u GET[“$name”]
实际上在大多数情况下都与没有引号的版本工作相同,但事实并非如此correct@kip:为什么这是一个错误?如果存在值为$name的$\u GET请求变量,则该函数将返回该变量,否则返回值为$default。第一个函数是正确的。括号是()
,而不是'
。后者是单引号或撇号。当你说括号()时,你指的是()还是括号[]?如果我没有完全困惑,或者你编辑了这篇文章,那么你的两个案例之间的唯一区别似乎是“$name”周围的单引号。Gumbo的答案是正确的。另外,我要指出,在这种情况下,没有单引号的版本几乎肯定是一个错误。无论$name的值是多少,它的行为都是一样的。另外,不要试图让您感到困惑,但是$\u GET[“$name”]
实际上在大多数情况下都与没有引号的版本工作相同,但事实并非如此correct@kip:为什么这是一个错误?如果存在值为$name的$\u GET请求变量,则该函数将返回该变量,否则返回值为$default。第一个函数是正确的。@jasondavis:我想你指的是未知偏移量*/*未知索引通知。这是因为在尝试读取之前,您应该测试该项是否存在。一种方法是isset
,另一种方法是array\u key\u存在
@jasondavis:我想你指的是未知偏移量*/*未知索引通知。这是因为在尝试读取之前,您应该测试该项是否存在。一种方法是设置isset
,另一种方法是存在array\u key\u
。您不会得到$array[mykey]的错误。您只会收到一个PHP通知。查看更多信息。从PHP7.2
您将获得PHP警告。define('mykey','mykey')代码>完成,无需注意$array[mykey]不会出现错误。您只会收到一个PHP通知。查看更多信息。从PHP7.2
您将获得PHP警告。define('mykey','mykey')代码>完成,无通知