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

  1. #1
    Expert éminent
    [Cours - Tutoriel] Introduction au langage PHP7 par l'exemple
    Ce message n'a pas pu être affiché car il comporte des erreurs.

  2. #2
    Expert éminent sénior
    Salut Serge

    Merci pour le gros travail accompli parce que c'est toujours très compliqué d'organiser un tel volume de connaissances et en plus c'est un autre tour de force que d'être capable de la restituer à un public débutant. Chapeau bas l'artiste.
    J'ai une remarque à faire concernant le fait que t'aies privilégié pour le rendu l'usage de print en lieu et place de echo.

    Les deux structures du langage ne se comportent pas de la même façon et il faut tenir compte des différences.
    Il est préférable pour le rendu d'utiliser echo pour plusieurs raisons :
    - echo est un poil plus rapide que print,
    - l'écart vient du fait que print se comporte comme une fonction et renvoie toujours une valeur de retour alors qu'echo ne se content que d'afficher,
    - echo permet d’enchaîner les valeurs à afficher : echo $nom, ' ', $prenom, ' 1245 ab', 'c'; alors que print ne le permet pas (l'enchaînement est plus véloce que la concaténation qui nécessite plus d'allocation mémoire))

    Quelques examples :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    $x = print 'abc';  // ici $x = 1
    // ce qui va conduire à des trucs de ce genre 
    print print print 25; // cela va afficher 2511 -> bonjour le débogage


    Enfin la notation courte <?= 'abc' ?> est juste l'équivalent de <?php echo 'abc' ?> et comme c'est une recommandation forte depuis PHP 5.4, je te conseille et à vous tous de ne pas utiliser print pour l'affichage et opter pour echo qui a été optimisé pour.
    Bref, print est a utiliser uniquement quand vous avez une excellente raison de le faire.

    ---
    Au sein d'un même script tu devrais éviter de mélanger les notations longues et courtes :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    $limites = array(9964, 27519, 73779, 156244, 0);
    $result = ["marié" => $marié, "enfants" => $enfants, "salaire" => $salaire] + $result;

    Dorénavant, il est préférable de privilégier la notation tableau standard à tous les langages : [ ... ] à l'ancienne array ( ... ) ; le mot clé array n'est a réserver que pour le typage stricte.


    ---
    Pour les espaces de noms, je t'invite à lire un billet sur mon blog espaces de nom et autoloader/ qui aborde principalement ce sujet, car dans ton code tu fais use \Exemples\Personne; ce qui est fortement déconseillé car la spécification du PHP précise que la structure du langage use attend toujours un chemin absolu (aucun risque de chemin relatif) en conséquence le premier \ est un pléonasme


    ---
    Dans ce code :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // test
    // création d'un tableau d'objets Personne et dérivés
    // pour la simplicité de l'exemple, on ne gère pas les exceptions
    $groupe = array(new Enseignant("Paul", "Langevin", 48, "anglais"), new Personne("Sylvie", "Lefur", 70));
     
    // identité de ces personnes
    for ($i = 0; $i < count($groupe); $i++) {
       print "groupe[$i]=$groupe[$i]\n";
    }
    // fin

    plusieurs remarques :
    - notation longue pour array,
    - il est préférable (et de loin) d'utiliser foreach () pour parcourir intégralement un tableau
    - dans ton code, à chaque tour le moteur doit évaluer count($groupe) et ce autant de fois que de boucles : il aurait été préférable de faire for ($i = 0, $nb = count($groupe) ; $i < $nb ; ++$i) {.


    ---
    Tu dois toujours écrire explicitement la visibilité des fonctions : static function say, se contenter de la visibilité par défaut peut s'avérer risqué : public static function say.


    ---
    Dans la partie Programmation orientée objet, je n'ai pas vu de paragraphe sur le polymorphisme (vu l'heure, je suis peut-être aussi miro ^^)



    Bonne lecture à tous

  3. #3
    Membre éclairé
    Ca ne m'intéresse absolument pas, mais merci beaucoup pour le partage de savoir qui, j'en suis sur, servira à plein de monde.
    "C'est d'un ennui…"

    Shikamaru Nara

###raw>template_hook.ano_emploi###