16

如何调用以下类方法或函数?

假设我有这个参数从 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;
    }

}

谢谢。

4

7 回答 7

28

要回答您的问题,当前方法是创建对象然后调用该方法:

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

另一种方法是制作该方法static,因为该类没有可依赖的私有数据:

public static function filter($data){

然后可以这样调用:

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

最后,您不需要类,只需包含一个包含函数的文件即可。所以你删除了方法中的class Functionspublic。然后可以像您尝试的那样调用它:

$var = filter($_GET['params']);
于 2013-03-19T12:34:19.157 回答
4

在类中,您可以使用以下方法调用函数:

 $this->filter();

课外

你必须创建一个类的对象

 ex: $obj = new Functions();

     $obj->filter($param);    

有关php 中的 OOP的更多信息

这个例子:

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

希望它会有所帮助!

于 2013-03-19T12:31:45.650 回答
2

如果您想从其他页面调用它,请为该类创建对象并调用它。

$obj = new Functions();

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

或者在同一个类实例[方法]中,试试这个。

$var = $this->filter($_GET['params']);
于 2013-03-19T12:29:52.520 回答
1
$f = new Functions;
$var = $f->filter($_GET['params']);

查看面向对象编程的 PHP 手册部分

于 2013-03-19T12:29:57.760 回答
1

由于函数根本没有使用$this,您可以static在 public 之后添加一个关键字,然后调用

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

避免仅为一个方法调用创建对象

于 2013-03-19T12:31:38.490 回答
0

您需要Objectclass.

$obj = new Functions();
$var = $obj->filter($_GET['params']);
于 2013-03-19T12:29:54.350 回答
0

这边走:

 $instance = new Functions(); // create an instance (object) of functions class
 $instance->filter($data); // now call it
于 2013-03-19T12:30:20.977 回答