lorsqu'on unserialize une class sans l'avoir défini on se retrouve avec un objet de type __PHP_Incomplete_Class
j'aimerai caster cette "objet' en SdtClass pour pouvoir y accéder mais je n'y arrive point !!!
quelqu'un aurai une idée...
Je crois que c'est un vraiment comportement contre-nature qui peut mettre en valeur un défaut de conception.
Il vaut mieux réfléchir à "pourquoi je n'ai pas la définition de cette classe ?".
Si c'est pour uniquement récupérer des données, (et non les traitements associés, aka poo ;) ), il vaut mieux sérialiser un tableau associatif.
mes 2 cents ...
-- FG
Gromitt
On 19 avr, 11:25, "Etienne SOBOLE" wrote:
salut.
lorsqu'on unserialize une class sans l'avoir défini on se retrouve avec un objet de type __PHP_Incomplete_Class
j'aimerai caster cette "objet' en SdtClass pour pouvoir y accéder mais je n'y arrive point !!!
Bonjour,
J'imagine que ceci se produit lorsque tu manipules des sessions, si tel est le cas : il te manque la définition (le code) de ta classe sérialisée quand tu restores ta session.
Solution : inclus tes classes requises avant de démarrer ta session (je pense qu'avec PHP5, __autoload() peut t'éviter ce désagrément). Sinon, avec les méthodes magiques __sleep() et __wakeup() tu peux automatiser la sérialisation de tes objets lorsque nécessaire.
-- Gromitt
On 19 avr, 11:25, "Etienne SOBOLE" <nom...@trash.fr> wrote:
salut.
lorsqu'on unserialize une class sans l'avoir défini on se retrouve avec un
objet de type
__PHP_Incomplete_Class
j'aimerai caster cette "objet' en SdtClass pour pouvoir y accéder mais je
n'y arrive point !!!
Bonjour,
J'imagine que ceci se produit lorsque tu manipules des sessions, si
tel est le cas :
il te manque la définition (le code) de ta classe sérialisée quand tu
restores ta session.
Solution : inclus tes classes requises avant de démarrer ta session
(je pense qu'avec PHP5, __autoload() peut t'éviter ce désagrément).
Sinon, avec les méthodes magiques __sleep() et __wakeup() tu peux
automatiser la sérialisation de tes objets lorsque nécessaire.
lorsqu'on unserialize une class sans l'avoir défini on se retrouve avec un objet de type __PHP_Incomplete_Class
j'aimerai caster cette "objet' en SdtClass pour pouvoir y accéder mais je n'y arrive point !!!
Bonjour,
J'imagine que ceci se produit lorsque tu manipules des sessions, si tel est le cas : il te manque la définition (le code) de ta classe sérialisée quand tu restores ta session.
Solution : inclus tes classes requises avant de démarrer ta session (je pense qu'avec PHP5, __autoload() peut t'éviter ce désagrément). Sinon, avec les méthodes magiques __sleep() et __wakeup() tu peux automatiser la sérialisation de tes objets lorsque nécessaire.
-- Gromitt
Etienne SOBOLE
En fait il est clair que si j'inclu la classe il n'y a pas de problème. ce que je cherche a faire c'est justement accèder au élements de mon objet (ou de ma structure puisque ce n'est que cela) sans inclure la class.
pourquoi je veux faire ca ? ben tout simplement parce que je récupère des données serialisée provenant dune classe donc je n'ai pas la definition. alors je précise que si je fait juste un
class maclasse { }
ca fonctionne, mais les objets sérialisés que je récupère proviennent de diverse classe. enfin bref. tout ce que je veux moi c'est juste accéder a ces données.
un foreach($obj AS $key => $value) fonctionne et me parcourt tout l'objet alors pourquoi un simple $obj->atrribut ou meme $obj['attribut'] ne fonctionne pas !!!
Etienne
En fait il est clair que si j'inclu la classe il n'y a pas de problème.
ce que je cherche a faire c'est justement accèder au élements de mon objet
(ou de ma structure puisque ce n'est que cela)
sans inclure la class.
pourquoi je veux faire ca ?
ben tout simplement parce que je récupère des données serialisée provenant
dune classe donc je n'ai pas la definition.
alors je précise que si je fait juste un
class maclasse
{
}
ca fonctionne, mais les objets sérialisés que je récupère proviennent de
diverse classe.
enfin bref. tout ce que je veux moi c'est juste accéder a ces données.
un foreach($obj AS $key => $value) fonctionne et me parcourt tout l'objet
alors pourquoi un simple $obj->atrribut ou meme $obj['attribut'] ne
fonctionne pas !!!
En fait il est clair que si j'inclu la classe il n'y a pas de problème. ce que je cherche a faire c'est justement accèder au élements de mon objet (ou de ma structure puisque ce n'est que cela) sans inclure la class.
pourquoi je veux faire ca ? ben tout simplement parce que je récupère des données serialisée provenant dune classe donc je n'ai pas la definition. alors je précise que si je fait juste un
class maclasse { }
ca fonctionne, mais les objets sérialisés que je récupère proviennent de diverse classe. enfin bref. tout ce que je veux moi c'est juste accéder a ces données.
un foreach($obj AS $key => $value) fonctionne et me parcourt tout l'objet alors pourquoi un simple $obj->atrribut ou meme $obj['attribut'] ne fonctionne pas !!!