为我解释PHP的这个片段:返回数组并立即引用索引

前端之家收集整理的这篇文章主要介绍了为我解释PHP的这个片段:返回数组并立即引用索引前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<?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”.

我希望是有道理的.

猜你在找的PHP相关文章