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;
}


Deja un comentario