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

PHP에서 __call() 메소드 사용

PHP中文网
PHP中文网원래의
2016-08-10 08:49:221349검색

<?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으로 문의하세요.