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 :

[Tableaux] Type hinting en PHP ?


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Tableaux] Type hinting en PHP ?
    Bonjour,

    PHP 5 intègre le type hint au niveau objet, ce n'est pas grand chose, mais c'est déjà un premier pas..., pensez-vous que PHP intègrera un jour nativement le type hint pour les types de bases ? (int, foat, string, array) ?

    Certains considéreront que c'est un retour aux âges sombres de l'info, mais perso j'estime que ça apporterait une certaine rigoureusité syntaxique, par la même, un peu plus de crédibilité au langage.
    Dernière modification par Invité ; 15/08/2006 à 13h38.

  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
    Excuse moi de poser cette question mais c'est quoi ce type 'hint' ?!

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Le Type Hinting (littéralement "masque de type, typage de données ou typage implicite") permet d'imposer un type de variables dans les paramètres de tes fonctions ou méthodes (Pour ce qui concerne PHP, ceci n'est pas valable pour la déclaration de variables).

    Si les paramètres transmis ne correspondent pas au masque de type imposé, cela génère une erreur fatale.

    Cette fonctionnalité fait partie de la structure des grands langages de programmation comme C, C++, Java, etc.

    PHP 5 intègre nouvellement ce type de contrôle, mais uniquement pour les objets.

    Ce n'est pas compliqué en soit comme principe, mais c'est difficile à expliquer, jette un coup d'oeil sur Wikipédia et le page de PHP.net sur le sujet.

    Bye

  4. #4
    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
    ouias ça va j'ai compris c'est pareille qu'en C lol mais je savais pas que ça s'appelait comme ça

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'utilise les termes anglophones seulement lorsque les termes francisés sont obscures, ridicules ou inadaptés !

    Mes excuses !

  6. #6
    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
    De mon point de vue, ce serait une erreur d'implémenter cela pour toutes les variables. Je ne m'en sers pas tous les jours mais c'est pratique. Bien sûr, le programmeur a la responsabilité de savoir ce qu'il fait, ce qui n'est malheureusement pas toujours le cas.
    Si une future version de PHP implémente le type hinting, j'ai peur que ce langage devienne très très peu accessible pour les débutants et que sa notoriété en prenne un coup, ou bien que personne ne mette sa version à jour (comme c'est le cas à chaque version majeure).

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Yogui
    De mon point de vue, ce serait une erreur d'implémenter cela pour toutes les variables. Je ne m'en sers pas tous les jours mais c'est pratique. Bien sûr, le programmeur a la responsabilité de savoir ce qu'il fait, ce qui n'est malheureusement pas toujours le cas.
    Si une future version de PHP implémente le type hinting, j'ai peur que ce langage devienne très très peu accessible pour les débutants et que sa notoriété en prenne un coup, ou bien que personne ne mette sa version à jour (comme c'est le cas à chaque version majeure).
    Effectivement cela peut repousser les débutants, mais de la même manière, ça ne pourrait que les aider si plus tard ils programment dans d'autres langages (de bas niveau comme le C) ou même en Java.

    D'un autre coté, ceux qui commencent par des langages à typage fort ont (auront) plus de facilité à faire du PHP.

    Si type hinting il y'a dans les versions ultérieures, cela ne devrait concerner que les paramètres de fonctions et méthodes puisque les déclarations et initialisations de variables sont affinées par PHP.

    Evidemment on peut effectuer ces contrôles de type manuellement, et parfois c'est plus adéquat, exemple : l'operateur instanceof qui permet de lever une exception personalisée avec PHP 5.

    Ou pourquoi pas, faire du transtypage...

    Je pense que le type hinting complet et optionnel serait idéal...

  8. #8
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Perso j'en pense que se serait un vrai plus que d'avoir un typage en entrée ET en sortie de fonctions.
    Deja plus mon code est explicite moins j'en ai à documenter.
    De plus parce que c'est l'ouverture à la surcharge des méthodes.
    Aussi parceque cela apportera plus de clareté au code.
    En effet il arrive souvent que je force le type d'une variable dans une méthode.
    Et cela un developpeur tiers ne peut le savoir en lisant la signature de la méthode.
    Ce qui est assez dommage.

    Citation Envoyé par Guardian_7
    Je pense que le type hinting complet et optionnel serait idéal...
    Le dessus je suis complètement d'accord, surtout pour la deuxième partie --> optionnel.
    Et j'espère bien que c'est la voix que suivra PHP.

  9. #9
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Tu pourras trouver quelques infos sur le devenir de PHP sur ce lien http://oss.backendmedia.com/PhP60
    C'est une list de souhaits, et ce qu'ils sont devenus.

  10. #10
    Invité
    Invité(e)
    Par défaut
    J'ai eu beau chercher, je n'ai trouvé aucun site qui parlait formellement du futur de PHP... Super merci pour ce lien !

  11. #11
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Tu verras y'à des truc sympa en prép, comme le ifsetor().
    Pour remplacer le $t = isset($_get["e"])?$_get["e"]:NULL;
    Ou bien encore la gestion des magic_quotes et register global qui vas se faire virer.

    Par contre je trouve vraiment nul l'ajout d'un goto label dans les breaks. Faudrait voi comment sa vas s'articuler mais je ne suis pas convaincu.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Ouais effectivement c'est assez intéressant, en ce qui concerne le type hinting apparament ce n'est pas souhaité pour ce qui concerne les properties (je pense qu'ils font référence au attribut OO si je me trompe ?).

    Apparament, ils on laissé tombé l'implémentation du mot clé "finally" pour les exceptions, dommage, je pensais qu'ils cherchaient plutôt à se rapprocher du modèle OO Java au fur et à mesure des versions...

    Ils passe ereg en extension, c'est pas trop tôt...

    L'operateur unaire c'était déjà un raccorci, mais bon ifsetor c'est encore plus cour !

    Les goto label, ça c'est la strucure de langage anthologique !, je pensais plutôt qu'ils l'avaient retiré des premières versions, apparament c'est l'inverse...

    Je continue la lecture

  13. #13
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Citation Envoyé par Guardian_7
    Ouais effectivement c'est assez intéressant, en ce qui concerne le type hinting apparament ce n'est pas souhaité pour ce qui concerne les properties (je pense qu'ils font référence au attribut OO si je me trompe ?).
    Effectivement j'ai compris la même chose, c'est un peu dommage. En même temps on va continuer de se coltiner la syntaxe __get / __set .
    Syntaxe qui me parait si peu pratique.
    J'aurais espérer qu'il la vire pour mettre des accesseurs/mutateurs à la .net :/

    Citation Envoyé par Guardian_7
    Les goto label, ça c'est la strucure de langage anthologique !, je pensais plutôt qu'ils l'avaient retiré des premières versions, apparament c'est l'inverse...
    C'est clair ....

    bbye

  14. #14
    Invité
    Invité(e)
    Par défaut
    Ironie du sort, en parcourant l'index du site http://derickrethans.nl/, je suis tombé sur la note intitulée "Typehints for scalar types".

    ... Sans autre commentaire .

    Bye

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/10/2006, 16h55
  2. [Tableaux] Fichier LUA et PHP
    Par kyuketsuki dans le forum Langage
    Réponses: 9
    Dernier message: 29/05/2006, 11h25
  3. [Tableaux] Message d'erreur PHP
    Par carmen256 dans le forum Langage
    Réponses: 9
    Dernier message: 15/05/2006, 13h09
  4. [Tableaux] lien automatique en php
    Par e-m.guillaume dans le forum Langage
    Réponses: 9
    Dernier message: 30/01/2006, 23h44
  5. [Tableaux] cases à cocher et PHP
    Par tjoce dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2005, 10h06

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