méthode dynamique en POO ?

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

12 août 2005, 15:57

Je suis dans une méthode d'une classe et je passe en paramètre une chaîne de caractère qui est une autre méthode de la classe.

J'ai du mal à lui dire d'exécuter la méthode passée en paramètre (donc dynamiquement).

Il faut utilisercall_user_func(), je présume plutôt qu'eval()... mais il veut po :(

Mon code dans la classe...
function poser($requete, $methode)
{
	if($result=sybase_query($requete)){
		if(substr($requete, 0, 6) == "SELECT" || substr($requete, 0, 6) == "INSERT"  || substr($requete, 0, 6) == "DELETE")
		{
		    if(substr($requete, 0, 6) == "SELECT")
		    {/* Traitement requête de recherche */
		    $num = sybase_num_rows($result);

		    $leHTML = $this->call_user_func(array('poser',$methode), $result);
		    }
		}
	}
	else
	{
		echo "bah non\n<br />";
			
	}
}
Fatal error: Call to undefined method BaseDeDonnes::call_user_func() in /usr/local/apache2/htdocs/xxx/lib/mssql_connect.inc.php on line 78

Administrateur PHPfrance
Administrateur PHPfrance | 250 Messages

12 août 2005, 16:08

salut mere theresa,

enleve le $this devant ton appel. la methode call_user_func n'est pas une methode de ton objet poser.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

12 août 2005, 16:12

#-o C'est pas gagné pour moi et les Objets, mais je persévère !
(enfin là, c'était que j'ai commencé à tapoter sur mon clavier, puis modifié mon script et laissé ce truc)

Merci !
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.