destroyedlolo Posté 28 Mars 2013 Partager 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? Lien vers le commentaire Partager sur d’autres sites More sharing options...
destroyedlolo Posté 28 Mars 2013 Auteur Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant