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

php中__call()方法的使用

PHP中文网
풀어 주다: 2016-05-25 17:10:34
원래의
1270명이 탐색했습니다.

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;);                           //这个方法不存在就不能调用
로그인 후 복사


관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿