【问题标题】:php access array value from function returnphp从函数返回中访问数组值
【发布时间】:2011-02-21 22:35:39
【问题描述】:

愚蠢的php问题... 为什么我不能这样做?

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

你必须这样做

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

【问题讨论】:

  • 我想你可以这样做:echo ( Auth::getFullUser() )[ 'country' ];

标签: php arrays scope


【解决方案1】:

不幸的是,语法不允许这样做。

AFAIK 曾一度打算将该语法放入 PHP6,但它has been dropped

【讨论】:

  • 非常感谢您解决这个问题,只是确保没有更好的方法。
【解决方案2】:

糟糕的语言/解释器设计。

同样的原因,你不能使用 "functionname"() 并且函数不区分大小写。

【讨论】:

  • 一点也不差。如果您不喜欢该语言,还有大量其他语言供您选择。
  • 是的,它并不差,我只是想省去写一个额外的变量......只是好奇。
  • 不方便,可以这么说,你必须了解 Kendall Hopkins 也使用 PHP。我们不是仇恨者,只是诚实的 PHP 用户。
  • @Coronatus @David Morrow 我支持我的声明,即 PHP,无论是语言还是实现,都很糟糕。该语言没有正式的定义。语言是如何“定义”的,很大程度上源于 ZEND 实现以及 php.net 上的非正式和模棱两可的文档。几乎没有努力使语法更通用例如像 C、C++、Haskell、Python 这样的语言来处理这样的边缘情况。当你考虑到标准函数的命名和参数顺序中的许多不一致时,说PHP“一点也不差”,这完全是垃圾。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 2011-04-08
    • 2011-04-24
    • 2017-01-26
    相关资源
    最近更新 更多