我想要这个问题的权威答案,或者你可以说我的问题。
让我们看一下以下三个代码段:
首先:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
?>
</body>
</html>
第二名:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS["y"] = $GLOBALS["x"] + $GLOBALS["y"];
}
myTest();
echo $y;
?>
</body>
</html>
第三:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS[y] = $GLOBALS[x] + $GLOBALS[y];
}
myTest();
echo $y;
?>
</body>
</html>
对于上述每个代码段,我在浏览器 15 中得到了相同的结果。
如果您仔细观察了上述三个代码段,您会发现以下三种不同的陈述:
//From First Code Snippet. Here I've used single quotes around the array index.
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
//From Second Code Snippet. Here I've used double quotes around the array index.
$GLOBALS["y"] = $GLOBALS["x"] + $GLOBALS["y"];
//From Third Code Snippet. Here I've not used any kind of quotes around the array index.
$GLOBALS[y] = $GLOBALS[x] + $GLOBALS[y];
所以,我的怀疑如下:
$GLOBALS
数组有效吗?答案 0 :(得分:2)
在PHP中,单引号和双引号的行为几乎相同。唯一的例外是双引号允许转义。
$GLOBALS["y"]
和$GLOBALS['y']
在这种情况下是相同的。
$GLOBALS[y]
可能有用,但有问题。 y
引用名为y
的常量变量。如果你没有,它会被解析为一个字符串,就像上面那样工作。
但实际上这是错误的,你应该使用引号!
在访问特定数组元素时,是否必须在数组索引周围使用引号?
绝对
如果是,那么哪种类型的引号,我的意思是单引号或双引号?
就像我说的,你可以使用其中之一。我个人更喜欢单一('
),但这取决于你。
虽然我得到了相同的结果,但我在上一个代码段中没有使用过任何引号。这是否意味着在访问数组元素时使用引号不是强制性的?
见问题#1的答案。
或者这是特殊情况,只对$ GLOBALS数组有效吗?
它被解释为定义为const y = '...';