PHP appel de la méthode de Classe / fonction

Comment puis-je appeler la méthode ou la fonction de classe suivante?

disons que j'ai cette params obtenir à partir 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.

10
demandé sur conmen 2013-03-19 16:27:27

7 réponses

pour répondre À votre question, la méthode actuelle serait de créer l'objet, puis appeler la méthode:

$functions = new Functions();
$var = $functions->filter($_GET['params']);

une autre façon serait de faire la méthode static depuis la classe n'a pas de données privées à s'appuyer sur:

public static function filter($data){

on peut alors l'appeler ainsi:

$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. Si vous supprimez l' class Functions et public dans la méthode. Cela peut alors être appelé comme vous essayé:

$var = filter($_GET['params']);
21
répondu UnholyRanger 2013-03-19 12:34:19

dans la classe vous pouvez appeler la 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 d' à propos de OOPs en php

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 aidera!

3
répondu sandip 2013-03-19 12:42:19

Créer un objet de la classe et de l'appeler, si vous voulez l'appeler à partir d'autres pages.

$obj = new Functions();

$var = $obj->filter($_GET['params']);

Ou à l'intérieur de la même classe d'instances [ méthodes ], essayez ceci.

$var = $this->filter($_GET['params']);
2
répondu Edwin Alex 2013-03-19 12:29:52
$f = new Functions;
$var = $f->filter($_GET['params']);

consultez la section du manuel PHP sur programmation Orientée Objet

1
répondu dnagirl 2013-03-19 12:29:57

car la fonction th n'utilise pas $this Vous pouvez ajouter un static mot-clé juste après public et ensuite appeler

Functions::filter($_GET['params']);

Éviter la création d'un objet juste pour un appel de la méthode

1
répondu MatRt 2013-03-19 12:31:38

vous devez créer Object pour les class.

$obj = new Functions();
$var = $obj->filter($_GET['params']);
0
répondu Dipesh Parmar 2013-03-19 12:29:54

comme Ceci:

 $instance = new Functions(); // create an instance (object) of functions class
 $instance->filter($data); // now call it
0
répondu Ihsan 2013-03-19 12:30:20