Qué gran verdad
Estudiándome un código fuente en PHP me encuentro esta gran frase:
PHP is a pretty stupid language.
¿El motivo esta vez? a()[0] no funciona. foo(a(), 0) sí. No deja indexar directamente un array devuelto por una función. Simpático lenguage
/**
* Returns $arr[$idx], because php doesn't let you index into
* arrays returned from a function.
*
* a()[0] doesn't work
*
* idx(a(), 0) does.
*
* PHP is a pretty stupid language.
*
* @param array to index into
* @param index. if negative, start at the end.
* @param default to return if $arr[$idx] is not set
* @return array[index]
*/
function idx($arr, $idx, $default=null) {
if ($idx === null || !is_array($arr)) {
return $default;
}
$idx = $idx >= 0 ? $idx : count($arr) + $idx;
return array_key_exists($idx, $arr) ? $arr[$idx] : $default;
}