谁可以给我解释一下这个:
$a = array( $b1 = "b1", $b2 = "b2", array($b3 = "b3", $b4 = "b4"));
echo $$$$$a[2][1];
Run Code Online (Sandbox Code Playgroud)
为什么合法?输出仍然是"B4",甚至呼应$a[2][1],$$a[2][1],$$$[2][1]等等.
我期望它是否会在回显时寻找变量"b4",$a[2][1]但它仍然会回显字符串"b4".
谢谢
基本上这里发生的是你在将$ b*变量添加到数组时声明它们.您上面的代码相当于
Array("b1","b2", Array("b3", "b4"));
Run Code Online (Sandbox Code Playgroud)
反过来相当于
Array(0 => "b1", 1 => "b2", 2 => Array(0 => "b3", 1 => "b4"));
Run Code Online (Sandbox Code Playgroud)
第二个数组实际上包括Php默认添加的数组索引,其中未定义索引.
当你输入
Array($b1 = "b1");
Run Code Online (Sandbox Code Playgroud)
该
$b1 = "b1"
Run Code Online (Sandbox Code Playgroud)
在插入数组之前被评估为"b1".
$a = array( $b1 = "b1", $b2 = "b2", array($b3 = "b3", $b4 = "b4"));
Run Code Online (Sandbox Code Playgroud)
在您的阵列中,您没有设置任何键.您正在值设定为变量$b1,$b2,$b3,和$b4,然后在(数字)阵列使用这些值.
所以,$b4 = "b4".这将设置$b4为字符串"b4",然后将其添加到数组中.
$a[2][1]是字符串"b4",$$a[2][1]其值$b4是"b4",$$$a[2][1]也是"b4",等等.
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |