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 " ...
随机推荐
- django_视图层/2.0路由层/虚拟环境
- R-CNN for Small Object Detection
R-CNN for Small Object Detection 文章方法概括 这篇文章主要讨论针对小目标的目标检测 文章为了证明:对传统R-CNN style的方法进行改进,可以用于小目标检测,并且 ...
- oracle入门(3)——oracle服务解释
[本文介绍] oracle不像mysql,安装后之后一个服务,如果mysql连接不上,打开其服务就行.oracle是有多个服务,哪些服务要开,哪些服务没必要开,对新手来说未必不是一个难点.下面对ora ...
- Ubuntu16.04安装postgresql9.4(转发:http://www.cnblogs.com/sparkdev/p/5678874.html)
安装前的检查 首先查看是否已经安装了旧版本: dpkg -l |grep postgresql 如果已经安装了某个版本的postgresql,请先卸载. 安装postgresql 添加postgres ...
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(5): Compile、Study
Delphi 正则表达式之TPerlRegEx 类的属性与方法(5): Compile.Study // Compile.Study var reg: TPerlRegEx; begin re ...
- Atom常用快捷键及设置
常用快捷键: cmd-z 修改历史中后退 cmd-y 修改历史中前进 ctl-shift-c 复制该聚焦文件的路径 cmd-/ 注释 shift-cmd-d 复制整行并粘贴到下一行 ctl-shift ...
- jmeter之报告和分析
转载:http://www.cnblogs.com/miaomiaokaixin/p/6118081.html jmeter -n -t 脚本名字.jmx -l xxx.jtl -e -o 指定目录( ...
- CSS3:布局display属性的flex(弹性布局)
CSS3:布局display属性的flex(弹性布局) 一.简介 Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.设为Flex布局以后, ...
- java:java静态代理与动态代理简单分析
java静态代理与动态代理简单分析 转载自:http://www.cnblogs.com/V1haoge/p/5860749.html 1.动态代理(Dynamic Proxy) 代理分为静态代理和动 ...
- ReactNative之Android打包APK方法(趟坑过程)
欢迎大家加群讨论 点击链接加入群[ReactNative-解决问题交流群] :644124441 点击链接加入群[ReactNative技术交流群2] :687663534 多余的不解释了.直接上车吧 ...