向我解释这个面试问题:
问:如果变量$ a等于5且变量$ b等于字符a,那么$$ b的值是多少?
A: 5,它是对现有变量的引用。
答案 0 :(得分:8)
那是variable variable。 PHP将使用存储在字符串$b
中的名称查找变量。因此,如果$b == 'a'
然后$$b == $a
。
它很像C中的指针,除了它们使用变量名字符串而不是内存地址指向彼此。您可以根据需要多次取消引用:
$a = 5;
foreach (range('b', 'z') as $L) {
$$L = chr(ord($L) - 1);
}
echo $$$$$$$$$$$$$$$$$$$$$$$$$$z;
输出:
5
答案 1 :(得分:1)
-95
就是答案,就好像你echo $b
将得到输出一样
“a
”
如果你echo $a
你将离开但是作为“5
”
因此,在这个意义上,当你$(echo $b)
与$(a)
相同时,你会得到“5-100
”,即“-95
”
答案 2 :(得分:0)
$$b - 100
= $a - 100 // substituting $b=a
= 5 - 100
= -95
答案 3 :(得分:0)
以下是PHP变量的一个很好的参考
答案 4 :(得分:0)
我不知道'?'在声明'$$ b中是错误的? - 100',但我认为不会编译。
然而:
$a = 5
$b = 'a';
$c = $$b - 100;
$ c将等于-95,因为$$ b是一个变量变量引用,并且给定$ a = 5它会解析为$ a(5) - 100或-95。
答案 5 :(得分:0)
答案是-95
$a - 100