В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Попытка:
<?php
$firstElement = reset(functionThatReturnsAnArray());
Если Вы просто ищете первый элемент массива.
Иногда я буду изменять функцию, таким образом, она сможет дополнительно возвратить элемент вместо целого массива:
<?php
function functionThatReturnsAnArray($n = NULL) {
return ($n === NULL ? $myArray : $myArray[$n]);
}
$firstElement = functionThatReturnsAnArray(0);
Если это всегда - первый элемент, необходимо, вероятно, думать о наличии функционального возврата просто первый объект в массиве. Если это - наиболее распространенный случай, Вы могли бы использовать определенную прохладу:
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 для функции.
Я предполагаю, что это - встроенная или библиотечная функция, так как она кажется, что Вы не можете отредактировать ее непосредственно. Я рекомендую создать функцию обертки, чтобы дать Вам вывод, в котором Вы нуждаетесь:
function functionThatReturnsOneElement( $arg )
{
$result = functionThatReturnsAnArray( $arg );
return $result[0];
}
$firstElement = functionThatReturnsOneElement();
Насколько я знаю, что это не возможно, я хотел сделать это сам несколько раз.
Ну, я нашел несколько способов получить то, что Вы хотите, не вызывая другую функцию.
$firstElement = ($t = functionThatReturnsAnArray()) ? $t[0] : false;
и для строк Вы могли использовать
$string = (($t = functionThatReturnsAnArray())==0) . $t[0];
.. Интересная проблема
Дракон
Также current($array)
или array_shift($array)
будет работать, первый оставит массив неповрежденным.
Я думаю, что любое вышеупомянутое потребовало бы, чтобы комментарий объяснил, что Вы делаете, таким образом становясь двумя строками. Я нахожу более простым сделать:
$element = functionThatReturnsArray();
$element = $element[0];
Таким образом, Вы не используете дополнительную переменную, и очевидно, что Вы делаете.
Можно использовать array_slice()
, как так:
$elementX = array_slice(functionThatReturnsAnArray(), $x, 1);
Также замеченный это end()
не упоминается. Это возвращает последний элемент массива.
Я на самом деле использую функцию удобства, которую я записал в таких целях:
/**
* Grabs an element from an array using a key much like array_pop
*/
function array_key_value($array, $key) {
if(!empty($array) && array_key_exists($key, $array)) {
return $array[$key];
}
else {
return FALSE;
}
}
затем Вы просто называете его как так:
$result = array_key_value(getMeAnArray(), 'arrayKey');
список () полезен здесь. С любым, но первым элементом массива, необходимо будет заполнить его бесполезными переменными. Например:
list( $firstElement ) = functionThatReturnsAnArray();
list( $firstElement , $secondElement ) = functionThatReturnsAnArray();
И так далее.
К сожалению, это не возможно с PHP. Необходимо использовать две строки, чтобы сделать это.
Можно сделать это в одной строке! Используйте array_shift ().
<?php
echo array_shift(i_return_an_array());
function i_return_an_array() {
return array('foo', 'bar', 'baz');
}
Когда это будет выполняться, это отзовется эхом"foo
".
@Scott Reynen
это не верно. Это будет работать:
list(,,$thirdElement) = $myArray;
nickf, хороший для знания, спасибо. К сожалению, это имеет проблемы удобочитаемости вне нескольких запятых.