méthode dynamique en POO ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : méthode dynamique en POO ?

par mere-teresa » 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 !

par matt_m » 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.

méthode dynamique en POO ?

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