为什么这样做有效:
$cacheMatchesNotPlayed = $cache->load('externalData');
$cacheMatchesNotPlayed = $cacheMatchesNotPlayed['matchesNotPlayed'];
但这不起作用:
$cacheMatchesNotPlayed = $cache->load('externalData')['matchesNotPlayed'];
有什么理由吗?第二位更容易编写。
答案 0 :(得分:7)
因为PHP不支持该语法。
答案 1 :(得分:6)
PHP不支持您要执行的函数数组解除引用。
查看关于主题http://wiki.php.net/rfc/functionarraydereferencing的RFC以及相关的邮件列表对话,这些对话在去年的这个时候大致有所下降。虽然有人支持这个,但它仍然是一个常见的请求(通常是“为什么这不起作用?”),但是没有计划引入这种语法。
至于为什么,很简单,实现它的代码还没有提交审批(如果已经写完)。
<强>更新强>
此功能已在PHP的主干(主要开发)分支中实现,并可能包含在下一个非bugfix版本(5.4.0)中。对于想要玩FAD的人,请随时下载trunk snapshot。
答案 2 :(得分:5)
PHP就像你所描述的那样不支持数组解除引用。这里也包括: