Метод / функция класса вызова PHP

Как я могу вызвать метод класса или функцию?

скажем, у меня есть этот params получить от url:

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

класс:

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;
    }

}

спасибо.

7 ответов


чтобы ответить на ваш вопрос, текущий метод будет состоять в том, чтобы создать объект, а затем вызвать метод:

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

другим способом было бы сделать метод static поскольку класс не имеет личных данных, на которые можно положиться:

public static function filter($data){

это можно назвать так:

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

наконец, вам не нужен класс и может просто иметь файл функций, которые вы включаете. Так что убрать class Functions и public в методе. Это можно назвать, как вы попробовал:

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

в классе вы можете вызвать функцию, используя:

 $this->filter();

вне класса

вы должны создать объект класса

 ex: $obj = new Functions();

     $obj->filter($param);    

дополнительные о Oops в php

этой пример:

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();

надеюсь, это поможет!


создайте объект для класса и вызовите, если вы хотите вызвать его с других страниц.

$obj = new Functions();

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

или внутри тех же экземпляров класса [ методы ], попробуйте это.

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

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

посмотрите раздел руководства PHP на объектно-ориентированное программирование


поскольку функция th не использует $this вообще, вы можете добавить static ключевое слово сразу после public, а затем вызовите

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

избегая создания объекта только для одного вызова метода


вам нужно создать Object на class.

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

таким образом:

 $instance = new Functions(); // create an instance (object) of functions class
 $instance->filter($data); // now call it