Comment puis-je appeler la méthode ou la fonction de classe suivante?
Disons que j'ai ce params obtenir de l'URL:
$var = filter($_GET['params']);
Classe:
class Functions{
public function filter($data){
$data = trim(htmlentities(strip_tags($data)));
if(get_magic_quotes_gpc())
$data = stripslashes($data);
$data = mysql_real_escape_string($data);
return $data;
}
}
merci.
Pour répondre à votre question, la méthode actuelle serait de créer l'objet puis d'appeler la méthode:
$functions = new Functions();
$var = $functions->filter($_GET['params']);
Une autre solution serait de rendre la méthode static
puisque la classe ne dispose pas de données privées sur lesquelles s'appuyer:
public static function filter($data){
Cela peut alors s'appeler comme suit:
$var = Functions::filter($_GET['params']);
Enfin, vous n'avez pas besoin d'une classe et pouvez simplement avoir un fichier de fonctions que vous incluez. Donc, vous supprimez le class Functions
et le public
dans la méthode. Cela peut alors s'appeler comme vous avez essayé:
$var = filter($_GET['params']);
Dans la classe, vous pouvez appeler une fonction en utilisant:
$this->filter();
En dehors de la classe
vous devez créer un objet d'une classe
ex: $obj = new Functions();
$obj->filter($param);
pour plus sur les POO en php
cet exemple:
class test {
public function newTest(){
$this->bigTest();// we don't need to create an object we can call simply using $this
$this->smallTest();
}
private function bigTest(){
//Big Test Here
}
private function smallTest(){
//Small Test Here
}
public function scoreTest(){
//Scoring code here;
}
}
$testObject = new test();
$testObject->newTest();
$testObject->scoreTest();
j'espère que ça va aider!
Créez un objet pour la classe et appelez-le si vous souhaitez l'appeler depuis d'autres pages.
$obj = new Functions();
$var = $obj->filter($_GET['params']);
Ou dans les mêmes instances de classe [méthodes], essayez ceci.
$var = $this->filter($_GET['params']);
$f = new Functions;
$var = $f->filter($_GET['params']);
Consultez la section du manuel PHP sur Programmation orientée objet
Comme la fonction n’utilise pas du tout $this
, vous pouvez ajouter un mot-clé static
juste après public
Functions::filter($_GET['params']);
Éviter la création d'un objet juste pour un appel de méthode
Vous devez créer Object
pour le class.
$obj = new Functions();
$var = $obj->filter($_GET['params']);
Par ici:
$instance = new Functions(); // create an instance (object) of functions class
$instance->filter($data); // now call it