利用魔術方法__call模擬數據庫連貫操作

<?php
/**
* 利用魔術方法__call模擬數據庫連貫操作
*/
class DB
{
	
 public $sql=array(
		'field'=>'',
		'where'=>'',
		'order'=>'',
		'limit'=>''
	);


	function __call($name,$args){

			$name=strtolower($name);
			if(array_key_exists($name,$this->sql)){
				$this->sql[$name]=$args[0];
			}else{
				echo 'Class'.get_class().' do not have a method '.$name;
			}
		 return $this;
	}

	function select(){
		echo "SELECT ".$this->sql['field']." FROM user ".$this->sql['where']." ".
		$this->sql['order']." ".$this->sql['limit'];
	 }
}

$obj =new DB();
$obj->field("id,name,time")
	->where("where id>9")
	->order('order by id')
	->limit(10)
	->select(); 

?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章