当前位置 : 主页 > 网络编程 > PHP >

php中__call()方法使用

来源:互联网 收集:自由互联 发布时间:2021-06-30
无详细内容 ?php/*作者:shyhero邮箱:[emailprotected]Q Q:1757424878*/class DB{private $sql = array("field"="","where"="","order"="","limit"="","group"="","having"="");public function __call($functionName,$arr){//只有在私有成
<无详细内容>
<?php
	/*
		作者:shyhero
		邮箱:[email protected]
		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');							//这个方法不存在就不能调用
		
		
		
		
		
网友评论