Heim >php教程 >PHP源码 >php中__call()方法的使用

php中__call()方法的使用

PHP中文网
PHP中文网Original
2016-05-25 17:10:341272Durchsuche

PHP代码

<?php
    /*
        作者:shyhero
        邮箱:shyhero@outlook.com
        Q  Q:1757424878
    */
    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;);                           //这个方法不存在就不能调用


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn