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