Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

acceder a une class __PHP_Incomplete_Class

3 réponses
Avatar
Etienne SOBOLE
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 !!!

quelqu'un aurai une idée...
merci
Etienne

3 réponses

Avatar
Francois Girault
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

Avatar
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

Avatar
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