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 Functionsとを削除しますpublic。これは、試したように呼び出すことができます:

$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

この関数はまったく使用されていないため、publicの直後にキーワード$thisを追加してから呼び出すことができますstatic

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

1回のメソッド呼び出しだけでオブジェクトを作成しないようにする

于 2013-03-19T12:31:38.490 に答える
1
$f = new Functions;
$var = $f->filter($_GET['params']);

オブジェクト指向プログラミングに関する PHP マニュアルのセクションをご覧ください。

于 2013-03-19T12:29:57.760 に答える
0

こちらです:

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

Objectのために作成する必要がありますclass.

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