|
Publicité | |||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Développeur Ruby on Rails / iOS et journaliste Inscription : juin 2010 Messages : 1 053 ![]() |
Quelle évolution de la syntaxe de PHP souhaiteriez-vous ?
Déréférencement, éviction du « dollar », tableaux sans Array ou une autre ? PHP offre un large panel de possibilités mais sa syntaxe est relativement rigide et (pour certains) « verbeuse » comparée aux autres langages dynamiques concurrents. Johannes Schlüter travaille sur MySQL à Oracle/Sun et fait partie de la core-team (l'équipe de développement) de PHP. Il vient de présenter sur son blog une nouveauté qui sera intégrée aux versions futures du langage (5.4 ou 6, il ne précise pas). Il s'agit de la possibilité de déréférencer des tableaux. Comme parfois un bout de code peut en dire plus qu'un long discours, il sera possible de faire : Code :
L'annonce de cette fonctionnalité soulève à la fois enthousiasme et critiques dans la communauté qui semble extrêmement partagée sur cette évolution. Votre avis nous intéresse donc sur cette question : êtes-vous pour ou contre. Et plus généralement, quelles sont les possibilités que vous souhaiteriez voir apparaitre dans les prochaines versions de PHP ? Sources : Blog de Johannes Schlüter Lire aussi : Quelle est la solution PHP la plus obscure que vous ayez utilisée ? Scripts, CMS maisons ou langages "PHP-Killer" ? Avez-vous inventé des termes que seuls vous et votre équipe comprenez ? Drôles ou techniques, expliquez-les nousLes rubriques (actu, forums, tutos) de Développez : PHP Développement WEB Langages
|
||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : avril 2003 Messages : 114 ![]() |
J'ai du mal à voir l'intérêt de cette syntaxe.
|
|
|
02
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 233 ![]() |
Juste éviter de passer par une variable temporaire.
taper Code :
$firstChild = $parent->getChildren()[0] Code :
|
||
|
|
30
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : juillet 2005 Messages : 365 ![]() |
Je trouve que niveau lisibilité c'est pas top moi
|
|
|
22
|
|
|
#5 |
|
Membre régulier
![]() Inscription : mars 2007 Messages : 110 ![]() |
Ça m'est déjà arrivé de râler parce que ça n'était pas possible de faire ça!
Et je ne programme qu'en PHP. Est-ce que ça engendre d'autres problèmes? Moi je n'en vois pas. Dernière modification par Mejdi20 ; 10/08/2010 à 18h11. |
|
|
10
|
|
|
#6 |
|
Membre du Club
![]() Inscription : avril 2003 Messages : 114 ![]() |
je demande juste :
et pourquoi ne pas faire en sorte que la fonction en question accepte un offset en paramètre comme on peut le faire depuis des lustres ?. on aurait plus clair à mon sens que de rajoute cette syntaxe, qui supprime une ligne de code, pas forcément inutile puisqu'elle rend le code plus compréhensible. |
|
|
04
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2006 Messages : 51 ![]() |
C'est pas tant la visibilité qui m'interpelle, pour ma part, c'est plus le fait que:
1 - Ce genre de "raccourci" incite au code brouillon 2 - Une source de bug potentielle |
|
|
44
|
|
|
#8 |
|
Membre confirmé
![]() ![]() Inscription : août 2008 Messages : 481 ![]() |
|
|
|
40
|
|
|
#9 |
|
Membre confirmé
![]() ![]() |
Pour ma part cela semble fort interessant. Ce n'est certe pas une révolution, mais j'aime d'autant mieux cette syntaxe que l'utilisation d'une variable temporaire. Quand on sait qu'une fonction retourne un tableau j'aime bien l'utiliser immédiatement comme tel (comme lorsqu'une fonction retourne un objet).
|
|
|
10
|
|
|
#10 | |
|
Membre actif
![]() Inscription : mai 2003 Messages : 133 ![]() |
Citation:
J'ai encore râlé il n'y a pas une heure parce que ça n'existait pas*; et qui plus est, cette syntaxe est tout à fait logique et courante (notamment en Ruby ou en Javascript pour ne citer qu’eux). |
|
|
|
20
|
|
|
#11 |
|
Membre éprouvé
![]() Benjamin ThuillierInscription : juillet 2010 Messages : 192 ![]() |
vraiment pratique quand on veut récuperer que certains élément du tableau retourné.
|
|
10
|
|
|
#12 |
|
Nouveau Membre du Club
![]() |
Je ne vois pas bien les problèmes que cette écriture peut engendrer ? Si quelqu'un pouvait m'éclairer là-dessus ?
Car, au contraire, cela évite de passer par une variable temporaire, et donc de faire une économie de mémoire. J'ai été très étonné que PHP n'accepte pas cette écriture il y a de cela quelques temps, écriture que je trouve... naturelle. Par contre, le nom donné... "déréférencement de tableaux"... C'est du lourd ! ^^ |
|
21
|
|
|
#13 | ||
|
Membre chevronné
![]() Étudiant Inscription : septembre 2006 Messages : 491 ![]() |
Je me permets de citer un commentaire sur le lien de reddit.com :
Citation:
Citation:
|
||
|
|
20
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Grégoire PineauInscription : juin 2007 Messages : 36 ![]() |
Je ne vois pas du tout pourquoi trouver cette méthode "brouillon". Je la trouve très pratique et l'attends avec impatience.
Dernière modification par Mejdi20 ; 10/08/2010 à 18h13. |
|
20
|
|
|
#15 | |||
|
Futur Membre du Club
![]() Inscription : août 2010 Messages : 3 ![]() |
Citation:
il est d'usage de tester le retour des fonctions avant de l'utiliser...et pour cela on a besoin d'une variable temporaire si on ne veut pas invoquer la fonction deux fois En somme: Code :
$firstChild = $parent->getChildren()[0] Code :
Cela dit PHP a toujours été un langage permissif et c'est une de ses forces, dans le cadre d'un développement "script" ou on est "quasi-certain" du retour, cela reste acceptable, mais il est comme toujours necessaire de comprendre le probleme éventuel que peut poser cette confiance aveugle Dernière modification par Mejdi20 ; 10/08/2010 à 18h20. |
|||
|
|
51
|
|
|
#16 |
|
Membre actif
![]() Patrick Mingard Inscription : mai 2006 Messages : 165 ![]() |
Très content de cette nouvelle syntaxe. Très utilisé en Javascript dans les parcours de DOM, j'y vois une facilité de langage vraiment utile. Pour ma part j'espère surtout que ce changement permettra également la syntaxe simplifiée foreach directement sur un champ de type tableau lors d'un passage à travers un __get().
Actuellement il n'est pas possible d'écrire foreach($object->table as ...) selon le type de visibilité des champs de l'objet. Je suppose que la nouvelle syntaxe devrait permettre ça. |
|
|
10
|
|
|
#17 | |
|
Membre actif
![]() Patrick Mingard Inscription : mai 2006 Messages : 165 ![]() |
Citation:
Je pense que tu peux remplacer [0] par [i] ou [$object->var] ou nimporte quel autre appel retournant string ou integer. |
|
|
|
11
|
|
|
#18 | |||||
|
Futur Membre du Club
![]() Inscription : août 2010 Messages : 3 ![]() |
Citation:
Code :
Si derriere elle va chercher les données en base ca peut vite devenir un souci D'ou Code :
|
|||||
|
|
20
|
|
|
#19 | |
|
Membre actif
![]() Patrick Mingard Inscription : mai 2006 Messages : 165 ![]() |
Citation:
Gaffe à l'appel de base de données en effet. Edit : j'avoue que je n'ai pas la moindre idée si le changement de syntaxe permettra la syntaxe simplifiée foreach() pour les champs protected ou private, mais je suppose que c'est lié... le foreach doit bien être traduit par un for standard avec un appel [i] en pré-processing... |
|
|
|
00
|
|
|
#20 | |
|
Membre régulier
![]() Inscription : mars 2007 Messages : 110 ![]() |
Citation:
Et je ne vois pas en quoi cette nouvelle syntaxe changerait la donne !? |
|
|
|
20
|
Copyright © 2000-2012 - www.developpez.com