destroyedlolo Posté 28 Mars 2013 Posté 28 Mars 2013 Bonjour, J'ai un programme de ce genre $lst = array('coucou', 'truc'); foreach($lst as $pname){ $probe = new $pname(); } sauf que les classes ne sont pas forcément définies et sont chargés dynamiquement par un include par spl_autoload_register(). Mais ici aussi, l'include qui en résulte peu échouer : ce sont des sondes pour un outils de monitoring, et je ne veux pas qu'il échoue uniquement car il reçoit un type de donner auquel il ne s'attend pas. Dans ce cas, il ignore simplement les données. En d'autre terme, je cherche a faire $probe = new $pname() or continue(); syntaxe qui ne fonctionne pas car <b>Fatal error</b>: Class 'truc' not found. Une idée?
destroyedlolo Posté 28 Mars 2013 Auteur Posté 28 Mars 2013 Bon, j'ai trouvé : class_exists() fonctionne parfaitement avec spl_autoload_register() donc ça marche super. function load_probe($probename){ @include_once('Domestik/Probes/'. $probename .'.inc'); } ... foreach($dt as $stp => $sample){ $pname = "probe_$stp"; if(!class_exists($pname)){ echo "*I* No support class for $stp\n"; continue; } $probe = new $pname($dt['timestamp'], $sample); } Je laisse le sujet des fois que ça puisse aider qq'un.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant