【问题标题】:PHP - calling array value from method that returns it?PHP - 从返回它的方法调用数组值?
【发布时间】:2012-03-21 09:16:21
【问题描述】:

我正在尝试直接从返回它的方法调用数组变量。类似于以下内容:

function some_meth()
{
    return array('var1' => 'var);
}

我知道我可以这样做:

$var = some_meth();
$var = $var['var1'];

但我希望能够在一行中做到这一点,如下所示:

$var = some_meth()['var1'];

这会返回下面的错误,这是有道理的,但是有没有办法在一行中做到这一点?

Trying to get property of non-object

【问题讨论】:

    标签: php arrays object methods associative-array


    【解决方案1】:

    在 php5.4 之前的版本中,这在单个调用中是不可能的。 5.4 就可以像你的例子一样完成它。

    来自http://docs.php.net/manual/en/language.types.array.php

    从 PHP 5.4 开始,可以直接对函数或方法调用的结果进行数组取消引用。以前只能使用临时变量。

    <?php
    function getArray() {
        return array(1, 2, 3);
    }
    
    // on PHP 5.4
    $secondElement = getArray()[1];
    
    // previously
    $tmp = getArray();
    $secondElement = $tmp[1];
    
    // or
    list(, $secondElement) = getArray();
    ?>
    

    【讨论】:

    • 嗯,好吧,我想我现在必须坚持老派的方式,我们仍然在 5.3 上。谢谢!
    【解决方案2】:

    这在 3 月 1 日发布的新 5.4 版本中是可能的

    更多信息here

    【讨论】:

      猜你喜欢
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多