<?phpdefine("BASDIR",__DIR__);include BASDIR."/Phpclass/Loader.php";spl_autoload_register("\\Phpclass\\Loader::autoload_rege"); \Phpclass\Gener::test();\Phpclass\Gener::username()."\n"; $db = new \Phpclass\Database();//若已经变成单例模式的话,就不能再用new了$res=$db->limit(11)->order("order")->where("----")->limit(100);//链式操作,函数中的return $this; 是关键点 //魔术方法,针对对象的属性和方法Objecter.php $Object =new \Phpclass\Objecter(); echo $Object->title="hello";//这是用__set($key,$val)和__get($key)方法,给$Object 增加了一个属性; echo $Object->test1("test1","abcd");//设置一个不存在的函数,用__call(funcion_name,$param); echo $Object::testccc("abcd");//设置一个不存在的函数,用__call($func_name,$param); echo $Object;//__toString 把对象转成客串; echo $Object("invoke只能有一个参数");//__invoke 把对象转成函数;-------------------------------------------------------------------------Index.php<?PHPnamespace Phpclass;class Loader{ static function autoload_rege($class) { include BASDIR.‘/‘.str_replace("\\","/",$class).".php"; }}
-------------------------------------------------------------------------Loader.php
<?phpnamespace Phpclass;class Gener{ static function test() { echo "this is a test"; } static function username() { echo "命名空间老是找不对地方\n"; } }
-------------------------------------------------------------------------Gener.php
<?phpnamespace Phpclass;class Objecter{ protected $array=array(); function __set($name, $value) { $this->array[$name]=$value; } function __get($name) { return $this->array[$name]; } function __call($name, $arguments) { echo "你所调用的函数:$name(参数:<br />"; var_dump($arguments); echo ")不存在!\n"; } static function __callStatic($name, $arguments) { echo "你所调用的函数:$name(参数:<br />"; var_dump($arguments); echo ")不存在!\n"; } function __toString() { return "对象不能直接输出\n"; } function __invoke($argument) { return $argument."对象不能当函数用\n"; }}
-------------------------------------------------------------------------Object.php
<?phpnamespace Phpclass;class Database{ function where($where) { echo "--admin".$where; return $this;//关键点,关键点,若用链条式语句 } function update($id) { echo $id; return $this; } function limit($count) { echo $count; return $this; } function order($order) { echo $order; return $this; }}
-------------------------------------------------------------------------Database.php
原文地址:https://www.cnblogs.com/nfyx/p/10743343.html
时间: 2024-07-30 23:26:00