SpiegazioneCodice-Golf: una riga di sintassi di PHP
PHP ha alcuni buchi nella sua sintassi e di tanto in tanto in fase di sviluppo un programmatore farà un passo in loro. Ciò può causare molta frustrazione dato che questi buchi di sintassi sembrano esistere senza motivo. Ad esempio, non è possibile creare facilmente una matrice e accedere a un elemento arbitrario di tale matrice sulla stessa riga (func1()[100]
non è una sintassi PHP valida). La soluzione alternativa a questo problema consiste nell'utilizzare una variabile temporanea e suddividere l'istruzione in due righe, ma a volte può portare a un codice molto prolisso e prolisso.
Sfida
So di alcuni di questi fori (sono sicuro che ci sono più). È abbastanza difficile persino trovare una soluzione, figuriamoci in uno stile di codice-golf. Il vincitore è la persona con almeno i caratteri totali per tutti e quattro i fori di sintassi.
Regole
- dichiarazione deve essere una riga in questa forma:
$output = ...;
, dove...
non contiene alcun;
's. - Utilizzare solo le funzioni di libreria standard (nessuna funzione personalizzata o
eval
consentita) - L'istruzione funziona in modo identico al funzionamento ipotizzato della sintassi non funzionante (anche nei casi in cui non riesce).
- L'istruzione deve essere eseguita senza errori di sintassi di alcun tipo con
E_STRICT | E_ALL
.
fori sintassi
$output = func_return_array()[$key];
- accedendo un offset arbitrario (string
ointeger
) dell'array restituito di una funzione$output = new {$class_base.$class_suffix}();
- arbitraria concatenazione stringa utilizzati per creare una nuova classe$output = {$func_base.$func_suffix}();
- concatenazione di stringa arbitraria chiamata come funzione$output = func_return_closure()();
- consultare chiusura essendo tornati da un'altra funzione
Array dereferenziazione (il vostro 1. Foro sintassi) è già stata impegnata a tronco da Felipe Pena. – Artefacto
@Artefacto Questa è una notizia fantastica! Gli ultimi sussurri che ho sentito sono stati ignorati. Hai un link per questo? –
Penso che questo esercizio sia inutile. Meno caratteri è diverso da più chiaro/più efficiente. – Artefacto