<?php /** * */ //__clone()方法对一个对象实例进行的浅复制,对象内的基本数值类型进行的是传值复制 /*class a { public $uname; public $num; function _a() { echo "后盾网免费视频课程"; } function b() { echo "php视频课程"; } //克隆函数: function __clone() { $this->num++; } } $c = new a(); //$d=$c; //echo intval($c===$d); //获取结果的整数值: //$c->uname=100; //echo $d->uname;//输出:100 //clone克隆对象: $e = clone $c; //echo intvalc($e===$c);//输出:0 echo $e->num;//输出:1*/ //__toString:是快速获取对象的字符串信息的便捷方式 /*class db { private $host; private $user; private $pwd; private $dbname; function __construct($host,$user,$pwd,$dbname) { $this->host = $host; $this->user = $user; $this->pwd=$pwd; $this->dbname=$dbname; } function _conn(){ $mysqli=new mysqli($this->host,$this->user,$this->pwd,$this->dbname); } function _gettable(){ echo "获得表名"; } function _getFields(){ echo "获取字段列表"; } function _insert(){ echo "插入数据"; } function _update(){ echo "更新数据"; } function __toString() { //get_class_methods()获取所有类的方法。 $method=implode("<br/>",get_class_methods(__CLASS__)); //get_object_var($object),返回一个数组。获取$object对象中的属性,组成一个数组 $vars=get_object_vars($this); $str=""; foreach ($vars as $k=>$v){ $str.=$k.'=>'.$v."<br/>"; } return $str; //return $method;//输出:类中所有的方法出来。 } } $arc=new db('localhost','root','user','hdcms'); echo $arc;*/ //__call: 当调用的类的方法不存在的时候执行他。 class f{ function _f(){ echo "3333"; } function __call($methodName, $args) { //echo $methodName;//输出:_f1 print_r($args);//输出:Array ( [0] => 11 [1] => 22 [2] => 33 ) } } $d=new f(); $d->_f1(11,22,33);