no save
Assistance
Achat
News

Forum | programmation
[PHP] Cast d'objets
GallyNet, le lun. 14 avr. 2008 à 12:03:15
Bonjour,

Je voudrais savoir s'il existe un moyen facile de faire du type casting sur les objets ? (passé d'une classe à une classe dérivé). Je voudrais faire la même chose qu'en Java :
<?php

class maClasse {
}

class monAutreClasse extends maClass {
function maFonction(){
}
}

$objet = new MaClasse();

// Traitements

$autreObjet = (monAutreClasse)$objet;
?>
Actuellement, j'en suis réduit à utiliser une fonction personnelle qui fait un cast bourrin :
function castObject(&$obj, $class){
$strlen = strlen($class);
$class = strtolower($class);
/* On transforme l'objet en une chaine de caractère */
$serialize = serialize($obj);
/* On modifie la chaine de caractère, en remplaçant la classe de l'objet par la nouvelle classe */
$serialize = preg_replace('/^O:[0-9]+:"[^"]+":([0-9]+):{(.*)}$/', 'O:'.$strlen.':"'.$class.'":$1:{$2}', $serialize);
/* On repasse la chaine de caractère en un objet */
$obj = unserialize($serialize);

/* On test si l'objet de fin correspond bien à l'objet voulut */
if(is_object($obj) && strtolower(get_class($obj)) == $class){
return true;
} else {
return false;
}
}


kilian
avr. 08
Suivant
REPONSES
kilian
avr. 08
GallyNet
avr. 08
kilian
avr. 08
GallyNet
avr. 08
kilian
avr. 08
GallyNet
avr. 08
kilian
avr. 08
GallyNet
avr. 08
Version Web
Réalisé par RedShift
no save