从函数返回的数组中访问PHP数组值

9

一个简单的PHP问题... 为什么我不能这样做?

echo Auth::getFullUser()[ 'country' ];

相反,你必须这样做

$user = Auth::getFullUser();
echo $user[ 'country' ];

1
我想你可以这样做:echo ( Auth::getFullUser() )[ 'country' ]; - Jacob Relkin
3个回答

5
很遗憾,语法不允许这样做。
据我所知,曾经有意将该语法放入PHP6中,但已被删除

非常感谢您澄清这一点,只是想确保没有更好的方法。 - David Morrow

5

PHP语法只允许在变量表达式末尾(即$user)使用下标符号表示法(即['country']),而不是在表达式(即Auth::getFullUser())上使用。


1

语言/解释器设计不佳。

同样的原因,你不能使用"functionname"(),而且函数是大小写不敏感的。


1
一点也不差。如果你不喜欢这种语言,还有很多其他语言可以选择。 - Amy B
是的,这并不差,我只是喜欢节省写一个额外变量的时间...只是好奇而已。 - David Morrow
1
有点不方便,我们必须要明白 Kendall Hopkins 也使用 PHP。我们并不是仇视者,只是诚实的 PHP 用户。 - erisco
1
@Coronatus @David Morrow 我坚持认为,PHP语言和实现都很差。该语言没有正式的定义。该语言的“定义”在很大程度上是源自ZEND实现以及php.net上的非正式且模糊的文档。与像C、C++、Haskell、Python等语言一样,几乎没有努力使语法更加通用,以处理这种边缘情况。当你考虑到标准函数命名和参数顺序的许多不一致性时,说PHP“一点也不差”是完全错误的。 - Kendall Hopkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接