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 :

[POO] Typage d'objet, int, string,


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut [POO] Typage d'objet, int, string,
    Bonjour !
    Je viens de finir mon projet en Java et je me suis remis au PHP. La je me dis, je vais une fois lire entièrement toute les nouveautés de PHP5 niveau POO.
    Je vois (à mon grand étonnement) qu'on peut faire du typage d'objet. Enfin, on peut juste demander qu'un variable soit une instance d'un "array" ou d'un certain type de classe mais les types primitifs ne sont pas pris en compte.
    C'est là que ça peut devenir intéressant (ou pas en fait mais bon ^^), pourquoi ne pas créer des classes int, string, float, ... pour les types primitifs un peu à l'instar de ce qui existe en java.
    J'aime vraiment le concept de typage et je trouvais d'ailleurs un peu dommage qu'en PHP ce soit beaucoup plus laxiste...
    Je ne sais ça réellement ce que ça peut apporter en soi à part une clarté du code accrue et au moins on est sur du type de donnée que l'on reçoit en paramètre.
    Un tit exemple de ce que pourrait être une classe int (non testé) :
    Bon pour le fun j'ai fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    $x = int(40); 
    echo $x; 
    $x->add (int(40)); 
    echo $x; 
    ?>

    qui affiche 4080

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php 
    class int { 
    public $x; 
    function __construct($x) { 
    if (preg_match('!^[0-9]*$!', $x)) { 
    $this->x = $x; 
    }
    else { 
    echo 'Mauvais paramètre.'; 
    } 
    } 
    public function add (int $x) { 
    $this->x += $x->x; 
    } 
    function __toString () { 
    return ''.$this->x; 
    } 
    } 
    ?>
    La classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function int ($x) { 
    return new int($x); 
    }
    La méthode pour faire comme en java

    Voila vous en pensez quoi ? Cela vaut-il la peine d'être approfondi ? Ou ça n'apporte rien de plus à l'utilisation...

  2. #2
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut
    J'ai pensé à faire quelque chose à l'instar de ruby mais finalement je ne voie pas trop l'interêt. Si tu veux voir une chouette démonstration de POO en PHP qui peux t'interresser puisque tu arrive de Java..

Discussions similaires

  1. binding objet int String
    Par alacaraibe dans le forum C#
    Réponses: 2
    Dernier message: 24/06/2009, 11h11
  2. [POO] Instancier un objet avec le nom de la classe
    Par shinchun dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2006, 13h44
  3. Réponses: 6
    Dernier message: 16/06/2005, 10h45
  4. [POO] fonction toUpperCase : Objet attendu
    Par LineLe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/04/2005, 16h51
  5. [POO] Passer un objet HTML en argument.
    Par defacta dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/12/2004, 10h44

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