Home  >  Article  >  php教程  >  Use of __call() method in php

Use of __call() method in php

大家讲道理
大家讲道理Original
2016-11-08 10:58:301060browse

<?php
  
    class DB{
        private $sql = array(
            "field"=>"",
            "where"=>"",
            "order"=>"",
            "limit"=>"",
            "group"=>"",
            "having"=>""
        );
        public function __call($functionName,$arr){     //只有在私有成员数组中存在的键才能被调用
            $functionName = strtolower($functionName);
            if(array_key_exists($functionName,$this -> sql)){
                $this -> sql[$functionName] = $arr[0];
            }else{
                echo "调用的方法不存在";
            }
            return $this;
        }
        public function select(){
            echo "select from {$this -> sql[&#39;field&#39;]} user {$this -> sql[&#39;where&#39;]} {$this -> sql[&#39;order&#39;]} {$this -> sql[&#39;limit&#39;]} {$this -> sql[&#39;group&#39;]} {$this -> sql[&#39;having&#39;]}";
        }
    }
    $db = new DB();
    $db -> field(&#39;sex count(sex)&#39;)               //只有在私有成员数组中存在的键才能被调用
        -> where(&#39;where sex in("m","w")&#39;)
        -> group(&#39;group by sex&#39;)
        -> having(&#39;having avg(age) > 25&#39;)
        -> select();
    $db -> query(&#39;d&#39;);                           //这个方法不存在就不能调用

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn