欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php中__call()方法的使用

程序员文章站 2022-04-18 17:49:33
...
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['field']} user {$this -> sql['where']} {$this -> sql['order']} {$this -> sql['limit']} {$this -> sql['group']} {$this -> sql['having']}";
        }
    }
    $db = new DB();
    $db -> field('sex count(sex)')               //只有在私有成员数组中存在的键才能被调用
        -> where('where sex in("m","w")')
        -> group('group by sex')
        -> having('having avg(age) > 25')
        -> select();
    $db -> query('d');                           //这个方法不存在就不能调用
相关标签: PHP