PHP call Class method / function

后端 未结 7 440
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-09 10:47

How can I call following Class method or function?

Let say I have this params get from url:

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

相关标签:
7条回答
  • 2020-12-09 11:18

    To answer your question, the current method would be to create the object then call the method:

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

    Another way would be to make the method static since the class has no private data to rely on:

    public static function filter($data){
    

    This can then be called like so:

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

    Lastly, you do not need a class and can just have a file of functions which you include. So you remove the class Functions and the public in the method. This can then be called like you tried:

    $var = filter($_GET['params']);
    
    0 讨论(0)
  • 2020-12-09 11:22

    This way:

     $instance = new Functions(); // create an instance (object) of functions class
     $instance->filter($data); // now call it
    
    0 讨论(0)
  • 2020-12-09 11:24

    As th function is not using $this at all, you can add a static keyword just after public and then call

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

    Avoiding the creation of an object just for one method call

    0 讨论(0)
  • 2020-12-09 11:34
    $f = new Functions;
    $var = $f->filter($_GET['params']);
    

    Have a look at the PHP manual section on Object Oriented programming

    0 讨论(0)
  • 2020-12-09 11:36

    Within the class you can call function by using :

     $this->filter();
    

    Outside of the class

    you have to create an object of a class

     ex: $obj = new Functions();
    
         $obj->filter($param);    
    

    for more about OOPs in php

    this example:

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

    hope it will help!

    0 讨论(0)
  • 2020-12-09 11:40

    Create object for the class and call, if you want to call it from other pages.

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

    Or inside the same class instances [ methods ], try this.

    $var = $this->filter($_GET['params']);
    
    0 讨论(0)
提交回复
热议问题