PHP - вызов значения массива из метода, который его возвращает? - PullRequest
0 голосов
/ 03 марта 2012

Я пытаюсь вызвать переменную массива напрямую из метода, который ее возвращает. Примерно так:

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

Я знаю, что могу сделать что-то вроде этого:

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

Но я бы хотел сделать это в одну строку, примерно так:

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

Это возвращает ошибку ниже, что имеет смысл, но есть ли способ сделать это в одной строке?

Trying to get property of non-object

Ответы [ 2 ]

4 голосов
/ 03 марта 2012

В pre-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();
?>
1 голос
/ 03 марта 2012

Это возможно в новой версии 5.4, выпущенной 1 марта

Подробнее здесь

...