How to make multiple calls to class methods in the same line?

前端 未结 2 1326
情歌与酒
情歌与酒 2021-02-19 11:54

I have an issue in PHP. In my php file, i created the following line:

$foo = $wke->template->notify()
                     ->type(\"ERROR\")
                    


        
相关标签:
2条回答
  • 2021-02-19 12:29

    Each of those methods will need to return some object that stores what you set as the argument in it. Presumably, it will be the template that contains each object property on it, and when you call the method it sets that corresponding variable and returns itself.

    0 讨论(0)
  • 2021-02-19 12:40

    The way of calling function of class one by one just by "->" because the function returning the same object of the class. See the example below. You will get this

    class Wke {
    
        public $type;
        public $errno;
        public $msg;
        public $page;
    
        public $template = $this;
    
        public function notify(){
            return $this;
        }
    
        public function errorno($error){
            $this->errno = $error;
            return $this; // returning same object so you can call the another function in sequence by just ->
        }
        public function type($type){
            $this->type = $type;
            return $this;
        }
        public function msg($msg){
            $this->msg = $msg;
            return $this;
        }
        public function page($page){
            $this->page = $page;
            return $this;
        }
    }
    

    The whole magic is of return $this;

    0 讨论(0)
提交回复
热议问题