par
mere-teresa » 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
[color=darkblue]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 utiliser[url=http://fr2.php.net/manual/fr/function.call-user-func.php]call_user_func()[/url], je présume plutôt qu'eval()... mais il veut po :(
Mon code dans la classe...[/color]
[php]
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 />";
}
}
[/php]
[quote]Fatal error: Call to undefined method BaseDeDonnes::call_user_func() in /usr/local/apache2/htdocs/xxx/lib/mssql_connect.inc.php on line 78[/quote]