Bonjour,
J'ai un problème de cast.
J'ai créer une classe Personnage.
est il possible de faire un cast d'une variable vers personnage par exemple :
$perso = (Personnage)$mavariable;
?
Merci de votre aide.
Michael
Bonjour,
J'ai un problème de cast.
J'ai créer une classe Personnage.
est il possible de faire un cast d'une variable vers personnage par exemple :
$perso = (Personnage)$mavariable;
?
Merci de votre aide.
Michael
Bonsoir, à priori je dirais non
Cela semble logique qu'un entier ne puisse être converti en un objet de classe possédant méthodes, attributs etc...Comme les ressources contiennent des valeurs très spéciales, comme des fichiers ouverts, des connexions aux bases de données, des images ou n'importe quoi d'autre, vous ne pouvez pas convertir une valeur en ressource.
oui, mais par exemple si j'ai un tableau de 'Personnage' et que je fais une boucle :
foreach ($tableau as $perso) {
$test = (Personnage)$perso
}
ou ce n'est pas nécessaire, et $perso est sera automatiquement reconnu comme 'Personnage' et non comme 'Object' ?
Car je voudrais ensuite accéder aux différents attributs de $perso.
Je comprends pas ta logique, dans ton exemple tu cherches à caster un objet, occurence de la classe Personnage en un objet de la classe Personnage ?
Oui, enfin en C# on est obligé de caster pour faire comprendre au compilateur.
Mais ca à l'air de marcher en php sans. donc voila, mais merci de ton aide .
Php est un langage faiblement typé, c'est un avantage mais aussi un inconvénient...
Bonne chance pour ton projet
tu peux éventuellement te rabattre sur l'opérateur instanceof qui te permet de vérifier si ton objet est bien une instance d'une classe. En gros, ça donnerai $pers instanceof Personnage et tu déclenche une exception si la condition n'est pas vérifier.
Patouche
Je n'en ai pas besoin de ce cas ci. mais jen aurais surement besoin plus tard.
Problème résolu.
Merci pour votre rapidité!
Pas du tout, en c# ta list est déjà typée, tu n'as pas à caster :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 List<Personnage> personnages = new List<Personnage>(); personnages.Add(new Peronnage('Jean-Pierre')); foreach(Personnage p in personnages) { // ici on n'a pas fait de cast, on indique juste au compilateur le type de p, mais on n'est pas passé d'un type objet à un type fortement typé. }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager