我很想知道以下代码为何会有不同的行为?
以下不起作用:
$_variable &= global $_global;
echo $_variable;
以下作品:
global $global;
$_variable &= $_global;
echo $_variable;
答案 0 :(得分:2)
global
是一种特殊的语言结构,它不能像在示例1中那样用于操作。
答案 1 :(得分:2)
global
关键字用于表示“使用此名称的全局变量,而不是本地变量”。最常见的用法是这样的:
$name = 'Slokun';
printName();
function printName() {
global $name; // Use the global, rather than function-local, version
echo $name;
}
会打印
Slokun
比较:
$name = 'Slokun';
printName();
function printName() {
echo $name;
}
不会打印任何内容
答案 2 :(得分:1)
将global
关键字视为动词而不是形容词。你的第一个例子说“引用将全局称为$ _global分配给$ _variable”。但global
不是形容词。第二个例子是正确的,对php说,“将$ _global视为全局”或“global-ify $ _global”,然后进行分配。
答案 3 :(得分:0)
你的代码应该是错的。通过引用传递值应为:
1)
$_variable =& $_global;
2)。
$_variable = & $_global;
3。)
$_variable = &$_global;
1~3是一样的。