[php] poo - fonction statique qui retourne un objet

poo - fonction statique qui retourne un objet [php] - PHP - Programmation

Marsh Posté le 22-07-2008 à 20:05:02    

:hello:  
 
Prenons un exemple simple :
 

Code :
  1. class Objet {
  2.    private $id;
  3.    private $nom;
  4.  
  5.    public function __construct($_id){
  6.        $query  = Db::requete("SELECT nom FROM table WHERE id = $_id" );
  7.        ...
  8.    }
  9.    public static function parNom($_nom){
  10.        $query = Db::requete("SELECT id FROM table WHERE nom = '$_nom'" );
  11.        $row = mysql_fetch_assoc($query);
  12.        return new Objet($row['id']);
  13. }
  14.  
  15. $obj = new Objet(12);
  16.  
  17. $obj2 = new Objet::parNom('objet12');


 
en fait, des fois j'ai besoin de construire par id (car je ne connais que ca), et d'autres fois, par le nom,  
 
c'est pas moche ? et pas en contradiction avec les principes de la poo ?

Reply

Marsh Posté le 22-07-2008 à 20:05:02   

Reply

Marsh Posté le 22-07-2008 à 21:31:50    

wha, ok je vais trvailler a comprendre ca :d

Reply

Marsh Posté le 22-07-2008 à 22:00:31    

vas-y vas-y dors :)
 
ok pour le topo je veut bien :) faut aussi que je me docu sur les methodes precedées de "__", je me sers que de __construct, __clone, ou tres rarement de __destruct :)

Reply

Marsh Posté le 23-07-2008 à 19:40:34    

hum pas mal cette methode :)
 
je vais tester ca

Reply

Marsh Posté le 23-07-2008 à 19:56:03    

Attention à ne pas en faire un four-tout...

Reply

Marsh Posté le 27-07-2008 à 00:03:23    


 
Ca marche ça en php?
 
edit: le cast de class je parle  :D


Message édité par Maxaks le 27-07-2008 à 00:04:05
Reply

Marsh Posté le 27-07-2008 à 00:36:14    

Dois y avoir un truc que je fais mal, j'ai des Parse error: syntax error, unexpected T_STRING ou T_VARIABLE quand j'essaye de faire ça.
Genre:

Code :
  1. return (Post) $db->object($sql);


renvoie une erreur avec php 5.2.6.
 
Au pire oui, je peux toujours remplir les objects "à la main"  :sweat:


Message édité par Maxaks le 27-07-2008 à 00:37:05
Reply

Marsh Posté le 27-07-2008 à 16:21:36    

ça sert à rien de caster l'objet retourné ici et en php on ne peut pas caster un objet à ma connaissance (on ne peut faire qu'un cast en type primitif comme string, boolean ou int), puisqu'en php on ne définit pas de type de retour pour une fonction/méthode.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed