次のクラスのメソッドまたは関数を呼び出すにはどうすればよいですか?
このパラメータが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;
}
}
ありがとう。
あなたの質問に答えるために、現在の方法はオブジェクトを作成し、メソッドを呼び出すことです:
$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);
詳細については OOPについて PHP
this例:
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手動セクション オブジェクト指向プログラミング
この関数は$this
をまったく使用していないため、publicの直後にstatic
キーワードを追加してから呼び出すことができます
Functions::filter($_GET['params']);
1回のメソッド呼び出しだけでオブジェクトの作成を回避する
class.
に対してObject
を作成する必要があります
$obj = new Functions();
$var = $obj->filter($_GET['params']);
こちらです:
$instance = new Functions(); // create an instance (object) of functions class
$instance->filter($data); // now call it