>php教程 >PHP源码 >PHP에서 __call() 메소드 사용

PHP에서 __call() 메소드 사용

大家讲道理
大家讲道理원래의
2016-11-08 10:58:301116검색

<?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;);                           //这个方法不存在就不能调用

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.