加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

为我解释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”.

我希望是有道理的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读