IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Nouvelle syntaxe [] pour les tableaux PHP ?

Votants
32. Vous ne pouvez pas participer à ce sondage.
  • Pour

    3 9,38%
  • Contre

    17 53,13%
  • Sans avis

    12 37,50%
Langage PHP Discussion :

Évolution : syntaxe [] pour les tableaux [Débat]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut Évolution : syntaxe [] pour les tableaux
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab = array(1, 4, 8, 2);
    La proposition :
    Bien sûr, cela peut donner du code très laid comme ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Je ne vois pas trop l'intérêt de cette syntaxe, surtout qu'au vu des exemples que tu as montré ça n'apporte strictement rien à la lisibilité du code.

    Au moins aund on utilise le array() on voit directement si on a un tableau a plusieur dimension ou pas.

    Puis pourquoi utiliser [] ?
    Pourquoi ne pas reprendre la syntaxe du C avec des accolades ?
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int matrice[2][3] = { { 1 , 2 , 3 } , { 4 , 5 , 6 } };
    Enfin même si il y avait une nouvelle syntaxe étant habitué à faire avec des array() je doute fort changer et c'est probablement vrai pour d'autre aussi.

  3. #3
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut
    Pour ma part, j'ai voté "sans avis".

    Pourquoi ? Parce qu'en effet, array() ressemble plus à un appel de fonction, que les crochets me semblent raccourcir le code sans affecter la lisibilité, mais que l'habitude poussera beaucoup de développeurs à préférer l'utilisation de array().

    Au final, et puisque les 2 écritures devraient cohabiter, ça ne changera pas les choses de façon fondamentale. N'étant ni absolument pour, ni absolument contre, je suis "au milieu"

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 709
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 709
    Par défaut
    J'ai voté "pour".
    Étant donné que l'ancienne syntaxe n'est pas abandonnée, il vaut mieux laissé le choix aux développeurs. Ainsi dans quelque années on pourra voir "sur le terrain" l'utilisation qui en est faite et peut-être qu'avec PHP 8, une des 2 syntaxes sera supprimées.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    Je vote pour à 100%

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Sans avis aussi ... ça ne va pas changer la face du monde , les developpeurs PHP ayant pris une habitude (vous savez ce qu'on dit sur les habitudes) , la nouvelle syntaxe risque peut etre de ne jamais servir , les nouveaux developpeurs eux vont peut etre s'y mettre mais en tout cas ce n'est pas une revolution (dans mon petit monde en tou cas !)
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  7. #7
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Par défaut
    j'ai voté sans avis ... comme beaucoup l'ont déjà fait remarqué cela ne va pas apporter de grand changement... puis cela fera plaisir au capitaine Crochet

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Ce qui serait intéressant, serait d'avoir l'avis des "contre"


  9. #9
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 516
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 516
    Par défaut
    Citation Envoyé par mathieu Voir le message
    J'ai voté "pour".
    Étant donné que l'ancienne syntaxe n'est pas abandonnée, il vaut mieux laissé le choix aux développeurs. Ainsi dans quelque années on pourra voir "sur le terrain" l'utilisation qui en est faite et peut-être qu'avec PHP 8, une des 2 syntaxes sera supprimées.
    Je suis contre, l'un des problèmes de PHP c'est qu'il y a trop de fonction en double, de synthaxe différente pour un même résultat. Là, il nous propose encore une autre. Le risque c'est que si dans une application codé par plusieurs personne, pas forcément en même temps. Nous risquons d'augmenter le risque de la non homogénéité dans l'application. Si une personne à garder une habitude de syntaxe il y en aura toujours un pour aller frimer pour faire dans une autre.

    Croyez moi, nous sommes vendredi soir, il est 18h30. Il y a une mise en production, le client attend. Damned il y a un bug qui apparait lorsqu'il est posé sur le serveur du client. Vite!... il faut chercher le bug. Le responsable qui pige wallou au PHP est juste derrière vous en train de regarder, vous sentez ça respiration. Le mec qui a développé cette partie s'est barré à 16h30.
    Vous cherchez, vous cherchez, vous cherchez, vous comprenez pas. En fait, au bout d'une heure, vous vous apercevez que l'erreur vient d'une petite particularité rarement utilisé et le bug s'y trouvait dedans. Mais votre oeil ne l'a pas vu. Là vous modissez le développeur ainsi que toute ça famille sur plusieurs génération. Il vous a coller un piège à ours dans son code. Tous parce qu'il a coller une synthaxe de merde qui n'apporte rien de spécial à l'application et comme par hasard l'erreur était caché dedans.
    Qui n'a jamais vécus ce genre de situation ? Voila ce qui risque d'arriver si nous rajoutons encore des doublons.
    La meilleurs arme contre les surprises de mise en prod le vendredi soir c'est la clareté d'un code. Il faut que ça soit de la Vitell.

Discussions similaires

  1. La meilleure syntaxe pour les entrées/sorties
    Par Lunixinclar dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/03/2007, 14h55
  2. Réponses: 2
    Dernier message: 17/03/2007, 01h15
  3. Syntaxe pour les heures
    Par Soph70 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 26/09/2006, 16h48
  4. Utilisation des références pour les tableaux
    Par Bouboubou dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 14/12/2005, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo