Bonsoir,
Depuis quelques jours, un débat fait rage sur la liste internals@lists.php.net (archives HTTP) : faut-il ou ne faut-il pas ajouter une syntaxe de construction de tableaux PHP ?
Actuellement :
$tab = array(1, 4, 8, 2);
La proposition :
Bien sûr, cela peut donner du code très laid comme ici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| if (1) {
$a = [
[
['a' => 1, 3],
($b = 3),
]
];
} else {
$a = [
[
['b' => 1, 3]
]
];
} |
Mais cela permet aussi d'avoir une syntaxe :- Qui ne porte pas à confusion avec une fonction : array() n'est pas un appel de fonction malgré les apparences ;
- Plus courte ;
- Plus proche d'autres langages (ce qui peut être un point positif ou négatif).
Dans tous les cas, la syntaxe actuelle array() ne sera pas abandonnée, la nouvelle syntaxe sera donc un ajout. Le patch est visiblement prêt, mais le débat tourne simplement autour de "doit-on ou pas ?"
Antonio Touriño propose cet exemple :
1 2 3 4 5
| // Seems more natural to me.
$array1 = ['a' => 1, 'b' => 2];
// than a function call...
$array2 = array("a" => 1, "b" => 2); |
Max Antonov propose un contre exemple très bien senti, prouvant que la nouvelle syntaxe ne sera ni mieux ni moins bien lisible, mais simplement une alternative :
1 2 3 4
| //is this a good-readable code?
foo (array('a'=2,'b'=>array('x'=>5,'c'=>array(1,4,2)),'n'=>$bar[4]));
//what difference in?
foo (['a'=2,'b'=>['x'=>5,'c'=>[1,4,2]],'n'=>$bar[4]]); |
Quelques têtes connues de PHP ne semblent pas être du même avis :- Les "-1" :
- Ilia Alshanetsky
- Pierre
- Arnold Daniels
- Derick Rethans
- Steph Fox
- ...
- Les "+1" :
- Elisabeth Smith
- Rasmus Lerdorf
- Andi Gutmans
- ...
Qu'en pensez-vous ?
PS : Ce n'est pas la première fois que ce débat apparaît dans la liste, mais cette fois un vote semble s'organiser.
Partager