Attualmente c'è una discussione nella mailing list di PHP-Internals riguardante l'implementazione di una sintassi breve per matrici e oggetti, principalmente [1, 2, ...]
per matrici standard, ['one'=>1, 'two'=> 2, ...]
per matrici associative e {'one'=>1, 'two'=> 2, ...}
per oggetti e c'è un disaccordo generale che mi dà fastidio: alcune persone sostengono che sia meno leggibile.
I motivi principali per cui ho visto questa proposta è stato quello di aumentare la semplicità e la leggibilità quando si utilizza questa struttura dati fondamentale in PHP , ma sto riscontrando problemi nel processare il motivo per cui alcune persone lo considerano illeggibile, puoi persino vedere che la leggibilità è un item sia nella lista pro che contro , ed è sia un argomento per sostenitori che oppositori.
Il mio sospetto è che gli oppositori stiano semplicemente considerando il caso standard di array(...)
rispetto a [...]
, ma non vedono il caso nidificato, ovvero:
$TV = array(
"flintstones" => (object)array(
"series" => "flintstones",
"members" => array(
(object)array( "name" => "fred", "role" => "lead", "age" => 36, ),
(object)array( "name" => "wilma", "role" => "wife", "age" => 31, ),
(object)array( "name" => "pebbles", "role" => "kid", "age" => 4, ),
),
),
"jetsons" => (object)array(
"series" => "jetsons",
"members" => array(
(object)array( "name" => "george", "role" => "lead", "age" => 41, ),
(object)array( "name" => "jane", "role" => "wife", "age" => 39, ),
(object)array( "name" => "elroy", "role" => "kid", "age" => 9, ),
),
),
"simpsons" => (object)array(
"series" => "simpsons",
"members" => array(
(object)array( "name" => "homer", "role" => "lead", "age" => 34, ),
(object)array( "name" => "marge", "role" => "wife", "age" => 37, ),
(object)array( "name" => "bart", "role" => "kid", "age" => 11, ),
),
),
);
Diventerebbe questo:
$TV = [
"flintstones" => {
"series" => "flintstones",
"members" => [
{ "name" => "fred", "role" => "lead", "age" => 36, },
{ "name" => "wilma", "role" => "wife", "age" => 31, },
{ "name" => "pebbles", "role" => "kid", "age" => 4, },
],
},
"jetsons" => {
"series" => "jetsons",
"members" => [
{ "name" => "george", "role" => "lead", "age" => 41, },
{ "name" => "jane", "role" => "wife", "age" => 39, },
{ "name" => "elroy", "role" => "kid", "age" => 9, },
],
},
"simpsons" => {
"series" => "simpsons",
"members" => [
{ "name" => "homer", "role" => "lead", "age" => 34, },
{ "name" => "marge", "role" => "wife", "age" => 37, },
{ "name" => "bart", "role" => "kid", "age" => 11, },
],
},
];
Per me, il secondo caso sarebbe miglia più leggibile, anche rinfrescante poiché posso spostare gli occhi più rapidamente attraverso di esso.
C'è una chiara maggioranza di persone che vogliono la sintassi breve, ma sono molto interessato a sapere perché è il secondo esempio che ho fornito meno leggibile per alcuni (alcuni di loro sono ben noti sviluppatori, il che significa che devono aver considerato caso annidato).
In ogni caso ho visto questo argomento in altri posti, che il minimalismo non è la stessa leggibilità, ma perché in questo caso specifico ?, la sintassi breve è ben nota in altre lingue e nessuno si lamenta della leggibilità, quindi perché? .
Grazie