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

Langage PHP Discussion :

typage explicite dans les méthodes [POO]


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut typage explicite dans les méthodes
    Bonjour,

    je suis tombé sur un exemple de code qui me paraît suspect. Donc j'aimerais avoir votre avis.

    OK, le typage explicite consiste à imposer le type de certains arguments passés à des méthodes (sauf que les types primitifs sont exclus).

    Mais dans la page que je cite, exemple bizarre.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class humain {...
    public function testTypeObjet(Francais $francais) {
    ...
    }
    ...
     
    }

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Francais extends humain {
    ...
    }
    Autrement dit, dans la classe humain, y a une méthode à laquelle on passe en paramètre un objet instance d'une classe qui hérite de la classe humain. Possible ou abération ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut Laurent,
    Citation Envoyé par laurentSc Voir le message
    OK, le typage explicite consiste à imposer le type de certains arguments passés à des méthodes (sauf que les types primitifs sont exclus).
    Pourquoi tu dis ça ?
    Depuis PHP 7, tu peux typer des primitives : regarde ça, partie Déclarations de type

    Le code que tu présentes est tout à fait viable, une classe mère peut très bien imposer un type qui dérive d'elle-même.
    Aucun souci de ce point de vue.

    Alors t'en es rendu où ? Tu as commencé à essayer de modéliser en objets quelques bouts de tes codes passés ?

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Tu as raison de me corriger et si je disais ça, c'est que j'ai lu :
    Le typage explicite a été introduit avec le PHP5 et correspond au fait de pouvoir imposer un typage aux paramètres de nos méthodes.

    Les paramètres vont alors pouvoir être de type objet, interface, tableau ou de type callable (fonctions de rappel).

    Afin que cela fonctionne, il faudra également spécifier le nom de la classe dans la déclaration des méthodes pour lesquelles on souhaite utiliser le typage explicite.

    Autre limitation du typage explicite à l’heure actuelle : on ne peut pas spécifier de type scalaire comme int ou string.
    et que c'est daté du 1er juillet 2019...

    Merci pour le reste de ta réponse.

    Où j'en suis : j'ai fini une première lecture du bouquin de Bersini (j'ai sauté les derniers chapitres car dans le texte, je voyais des notions décrites plus tôt dans le livre, mais que j'avais oubliées). J'ai donc décidé de faire une 2e lecture (rapide, mais en m'arrêtant sur ces notions). Je viens de commencer. Mon idée était ensuite de reprendre ton code dans ton blog, mais effectivement, ça semble plus profitable de commencer par tenter de réécrire des codes personnels écrits en procédural...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de la variable self dans les méthodes
    Par sliderman dans le forum Général Python
    Réponses: 2
    Dernier message: 19/11/2007, 01h20
  2. Calucul du temps passé dans les méthodes
    Par apqmwnqmap dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/06/2007, 12h03
  3. Réponses: 6
    Dernier message: 19/02/2007, 11h13
  4. Réponses: 4
    Dernier message: 05/02/2007, 14h40
  5. [EJB2.1 Entity] [BMP] les requetes doivent-elles se trouver directement dans les méthodes ?
    Par webspeak dans le forum Java EE
    Réponses: 2
    Dernier message: 24/03/2005, 08h34

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