cs_mael974
Messages postés108Date d'inscriptionjeudi 2 juin 2005StatutMembreDernière intervention10 mars 2011
-
11 avril 2008 à 01:33
cs_mael974
Messages postés108Date d'inscriptionjeudi 2 juin 2005StatutMembreDernière intervention10 mars 2011
-
11 avril 2008 à 12:15
Bonjour a tous,
mon pbl est le suivant (je suis en php 5) : j'ai un objet (type objet) que je souhaite passer en paramtre pour pouvoir ensuite utiliser tous les methodes de cette objet, je procede dc comme suit:
----index.php -----
include 'joueur.php';
//creation des joueurs
$j1 = new joueur('toto',1);
ce dernier m'affiche comme je m'y attendais l'erreur suivante:
Fatal error : Call to a member function affiche_Main() on a non-object in C:\wamp\www\belote\jeux.php on line 4
cependant dans l'url, il reconnait bien le type objet:
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 11 avril 2008 à 02:04
Salut,
Pour passer un objet dans une variable $_POST ou $_GET, il faut d'abord le linéariser :
http://fr.php.net/serialize
Pour le récupérer depuis la variable dans laquelle il a été stocké sous forme linéaire, il faut le délinéariser : http://fr.php.net/unserialize
Enfin, pour contrôler parfaitement le comportement de ton objet lors de la linéarisation, tu peux lui définir la méthode magique __wakeup(), et lors de la délinéarisation, avec la méthode magique __sleep().
=> http://fr.php.net/manual/fr/language.oop5.magic.php
<hr size="2" width="100%" />Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 11 avril 2008 à 08:51
salut
c'est une des solution pour le passer par get ou post
c'est une des solutions les plus moches en fait...
quand on regarde ca de plus pres, tout les objets ne sont pas serializables, pourtant, on peut appliquer la fonction sur tout objet, ca ne provoque pas d'erreur de typage (typage et php, c'est merveilleux...)
le modele de java sur le serialize, c'est assez fantastique a cote : on a une interface qui dit si un objet peut-etre serialize ou non...
j'avais imagine (et poste) une source qui avait le meme genre d'interfaces pour json.
Bref, comme on peut faire n'importe quoi actuellement en php, avec json et serialize, il semble preferable de laisser la machine faire (c'est a dire de ne pas appeller soi meme ces fonctions) placer en SESSION l'objet par exemple.
cs_mael974
Messages postés108Date d'inscriptionjeudi 2 juin 2005StatutMembreDernière intervention10 mars 2011 11 avril 2008 à 12:15
Salut,
merci de votre reponse. je pensais au faite passer l'objet en SESSION. Ms par curiosité je vais tester cette fonction serialize que [auteur/NEIGEDHIVER/924195.aspx neigedhiver] ma suggerer. En tt cas merci a vous !!!