013对象—— __clone __toString __call
<?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);
013对象—— __clone __toString __call的更多相关文章
- php对象: __clone, __toString, __call,__isset, __unset, __sleep, __wakeup,
__clone: 克隆对象,自动完成操作 clone() __toString: return返回字符串 __call: 当调用不存在的函数时,自动执行该方法,并返回相关值 __isset: ...
- PHP 魔术方法 __clone __toString(五)
__clone() - 当对象克隆的时候自动加载此方法 __toString() - 当对象需要echo打印输出的时候自动加载此方法 __clone() <?php class example{ ...
- php类知识---魔术方法__toString,__call,__debugInfo
<?php class mycoach{ public function __construct($name,$age) { $this->name = $name; $this-> ...
- 【PHP面向对象(OOP)编程入门教程】17.克隆对象__clone()方法
有的时候我们需要在一个项目里面,使用两个或多个一样的对象,如果你使用“new”关键字重新创建对象的话,再赋值上相同的属性,这样做比较烦琐而且也容易出错,所以要根据一个对象完全克隆出一个一模一样的对象, ...
- PHP面向对象(OOP):克隆对象__clone()方法
有的时候我们需要在一个项目里面,使用两个或多个一样的对象,如果你使用“new”关键字重新创建对象的话,再赋值上相同的属性,这样做比较烦琐而且也容易出错,所以要根据一个对象完全克隆出一个一模一样的对象, ...
- 克隆对象__clone()方法
有的时候我们需要在一个项目里面,使用两个或多个一样的对象,如果你使用“new”关键字重新创建对象的话,再赋值上相同的属性,这样做比较烦琐而且也容易出错,所以要根据一个对象完全克隆出一个一模一样的对象, ...
- php -- 魔术方法 之 对象输出 : __toString()
对象输出:__toString() 当一个对象被当做字符串进行输出时(echo,print),会调用__toString()方法 <?php //输出对象 class Person{ //属性 ...
- 跟着百度学PHP[4]OOP面对对象编程-14-克隆对象__clone()方法
$b=clone ($a) #克隆a对象. <?php class Human { private $name; private $sex; private $age; function __c ...
- Object之魔术函数__call() 处理错误调用
在提到__call之前,先来看一个实例的测试结果,以便更好地去了解__call方法的作用.上代码: <?php class Person{ function say(){ echo " ...
随机推荐
- Android 成功 使用GPS获取当前地理位置(解决getLastKnownLocation 返回 null)
最近遇到一个比较棘手的问题:使用GPS定位无法获取当前的地理位置,即getLastKnownLocation方法始终返回null. 后来一篇博文 getLastKnownLocation()返回n ...
- 编译原理课后习题答案令A,B和C是任意正规式,证明以下关系成立(A|B)*=(A*B*)*=(A*|B*)*
题目: 令A.B和C是任意正规式,证明以下关系成立: A∣A=A (A*)*= A* A*=ε∣A A* (AB)*A=A(BA)* (A∣B)*=(A*B ...
- Uber中国在地方城市的人员架构是怎样的?
http://www.thepaper.cn/newsDetail_forward_1390516 澎湃新闻:Uber中国在地方城市的人员架构是怎样的? 柳甄:一般是3人组成的小团队作战.一名城市 ...
- CSS 中文字体 Unicode 编码表
CSS 中文字体 Unicode 编码表 在 CSS 中设置字体名称,直接写中文是可以的.但是在文件编码(GB2312.UTF-8 等)不匹配时会产生乱码的错误. 为此,在 CSS 直接使用 Unic ...
- cdoj 秋实大哥搞算数
地址:http://acm.uestc.edu.cn/#/contest/show/95 题目: N - 秋实大哥搞算数 Time Limit: 3000/1000MS (Java/Others) ...
- CodeForces - 894E Ralph and Mushrooms (强连通缩点+dp)
题意:一张有向图,每条边上都有wi个蘑菇,第i次经过这条边能够采到w-(i-1)*i/2个蘑菇,直到它为0.问最多能在这张图上采多少个蘑菇. 分析:在一个强连通分量内,边可以无限次地走直到该连通块内蘑 ...
- Hive2.2.1安装使用
解压缩hive安装包tar zxvf apache-hive-2.1.1-bin.tar.gz 安装mysqlsudo yum install mysql-server 安装 mysql connec ...
- mount、umount、fuser命令使用小结
mount -t cifs -o username=administrator,password=xxxxx //192.168.11.17/Data/ /mnt/databak/之后想卸载挂载目录, ...
- Python3.x:pyodbc连接Sybase数据库操作(Windows系统下DNS模式)
Python3.x:pyodbc连接Sybase数据库操作(Windows系统下DNS模式) 一.安装模块pyodbc pip install pyodbc 二.配置odbc数据源 (1).windo ...
- Saltstack sls文件:批量安装服务
一.使用saltstack 批量安装nginx 1.创建salt目录 mkdir /srv/{salt,pillar} 2.再/srv/salt/下创建sls文件 vim nginx_install. ...