ExplicaciónCódigo-Golf: una línea de sintaxis PHP
PHP tiene algunos agujeros en su sintaxis y de vez en cuando en el desarrollo de un programador va a intensificar en ellos. Esto puede llevar a mucha frustración ya que estos agujeros de sintaxis parecen existir sin ningún motivo. Por ejemplo, uno no puede crear fácilmente una matriz y acceder a un elemento arbitrario de esa matriz en la misma línea (func1()[100]
no es una sintaxis PHP válida). La solución para este problema es utilizar una variable temporal y dividir la instrucción en dos líneas, pero a veces eso puede llevar a un código muy detallado y poco claro.
Desafío
Sé de algunos de estos agujeros (estoy seguro de que hay más). Es bastante difícil incluso encontrar una solución, y mucho menos en un estilo de código de golf. El ganador es la persona con el menor total de caracteres para los cuatro espacios de sintaxis.
Reglas
- Declaración debe ser una línea del siguiente modo:
$output = ...;
, donde...
no contiene ningún;
's. - Utilice únicamente las funciones estándar de la biblioteca (no hay funciones personalizadas o
eval
permitidos) - comando funciona de forma idéntica a la funcionalidad supuesta de la sintaxis que no funciona (incluso en los casos en que se produce un error).
- La instrucción debe ejecutarse sin ningún error de sintaxis de ningún tipo con
E_STRICT | E_ALL
.
Agujeros de sintaxis
$output = func_return_array()[$key];
- acceder a un desplazamiento arbitrario (string
ointeger
) de la matriz devuelta de una función$output = new {$class_base.$class_suffix}();
- arbitraria concatenación de cadenas que se utilizan para crear una nueva clase$output = {$func_base.$func_suffix}();
- se llama a la concatenación de cadenas arbitraria como función$output = func_return_closure()();
- llamar a un cierre que se devuelven desde otra función
matriz de eliminación de referencias (el agujero de sintaxis 1.) ya ha sido confirmado en el tronco por Felipe Peña. – Artefacto
@Artefacto ¡Son noticias increíbles! Los últimos susurros que escuché fueron que fue ignorado. ¿Tienes un enlace para eso? –
Creo que este ejercicio no tiene sentido. Menos caracteres es diferente de más claro/más eficiente. – Artefacto