PHP: Могу ли я ссылаться на один элемент массива, который возвращается функцией? - PullRequest
11 голосов
/ 16 сентября 2008

есть идеи, как, если в PHP возможно следующее в одной строке?:

<?php
$firstElement = functionThatReturnsAnArray()[0];

... Кажется, он не «берет». Мне нужно сделать это как 2-х степпер:

<?php
$allElements = functionThatReturnsAnArray();
$firstElement = $allElements[0];

... просто любопытно - на других языках, на которых я играю, такие вещи разрешены, и я ленив, чтобы пропустить это в PHP ... любая оценка приветствуется ...

Ответы [ 17 ]

0 голосов
/ 16 сентября 2008
$firstItem = current(returnsArray());
0 голосов
/ 16 сентября 2008

Я думаю, что любое из вышеперечисленного потребовало бы комментария, чтобы объяснить, что вы делаете, таким образом, став две строки Я считаю, что это проще сделать:

$element = functionThatReturnsArray();
$element = $element[0];

Таким образом, вы не используете дополнительную переменную, и очевидно, что вы делаете.

0 голосов
/ 16 сентября 2008

Ну, я нашел несколько способов получить то, что вы хотите, без вызова другой функции.

$firstElement = ($t = functionThatReturnsAnArray()) ? $t[0] : false;

и для строк вы можете использовать

$string = (($t = functionThatReturnsAnArray())==0) . $t[0];

.. Интересная проблема

Драко

0 голосов
/ 16 сентября 2008

Насколько я знаю, это невозможно, я хотел сделать это сам несколько раз.

0 голосов
/ 16 сентября 2008

Если это всегда первый элемент, вам, вероятно, следует подумать о том, чтобы функция возвращала только первый элемент в массиве. Если это самый распространенный случай, вы можете использовать немного крутости:

function func($first = false) {
    ...
    if $first return $array[0];
    else return $array;
}

$array = func();
$item = func(true);

Мой php немного ржавый, но я уверен, что это работает.

Вы также можете посмотреть на array_shift () и array_pop ().

Это также возможно:

array(func())[0][i];

0 для функции.

0 голосов
/ 16 сентября 2008

Никф, приятно знать, спасибо. К сожалению, у него есть проблемы с читаемостью, за исключением нескольких запятых.

0 голосов
/ 16 сентября 2008

http://us3.php.net/reset

Доступно только в php версии 5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...