Метод / функция класса вызова 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']);
избегая создания объекта только для одного вызова метода
таким образом:
$instance = new Functions(); // create an instance (object) of functions class
$instance->filter($data); // now call it