为我解释PHP的这个片段:返回数组并立即引用索引
发布时间:2020-12-13 13:58:48 所属栏目:PHP教程 来源:网络整理
导读:?phpfunction ReturnArray() { return array('a' = 'f','b' = 'g','c' = 'h','d' = 'i','e' = 'j');}echo ${!${!1}=ReturnArray()}['a']; // 'f'? 请解释上述分辨率中的${!1}计算的逻辑和步骤是什么? 我们从一些基础开始.在PHP中,像hello这样的东西会评估
<?php function ReturnArray() { return array('a' => 'f','b' => 'g','c' => 'h','d' => 'i','e' => 'j'); } echo ${!${!1}=ReturnArray()}['a']; // 'f' ?> 请解释上述分辨率中的${!1}计算的逻辑和步骤是什么?
我们从一些基础开始.在PHP中,像hello这样的东西会评估字符串“hello”.要引用变量,可以使用以下语法:${expr}.还有一个简单的说法,$foo,这将大致评估为:${“foo”}.
此外,您可能知道您可以一次分配多个变量:例如$a = $b = $c =’hello’.这将分配$a,$b和$c到“你好”.这实际上表示为$a =($b =($c =’hello’)));. $foo = value是一个表达式,在$foo设置后,将计算值. 你的代码语句如下所示: echo ${!${!1}=ReturnArray()}['a']; 它的第一件事情显然是调用ReturnArray.然后评估!1,其计算结果为false.因此${!1}使一个名称为false的变量,而不是一个字符串(?!).之后,它对数组应用一个不操作.所有非空数组都是真实的,因此不会将操作更改为false.然后它再次使用该${}语法来检索名为false的变量.然后它使用数组访问来检索数组中的值“a”. 我希望是有道理的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |