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 " ...
随机推荐
- FORM pdf预览功能函数 SSFCOMP_PDF_PREVIEW
函数模块 SSFCOMP_PDF_PREVIEW Smart Forms: PDF Preview (Test) function ssfcomp_pdf_preview. ...
- iptables打开22,80,8080,3306等端口
systemctl stop firewalld systemctl mask firewalld Then, install the iptables-services package: yum i ...
- PAT 天梯赛 L1-017. 到底有多二 【水】
题目链接 https://www.patest.cn/contests/gplt/L1-017 AC代码 #include <iostream> #include <cstdio&g ...
- sublime text 3 配置在浏览器中快速预览
1.打开Sublime,在菜单栏找到 preferences->package control->输入install package,回车 2.在弹出的输入框里输入SideBarEnhan ...
- dojo 官方翻译 dojo/Deferred
延迟,异步调用 官网地址:http://dojotoolkit.org/reference-guide/1.9/dojo/Deferred.html require(["dojo/Defer ...
- Java基础_基本语法
Java基本语法 一:关键字 在Java中有特殊含义的单词(50). 二:标志符 类名,函数名,变量名的名字的统称. 命名规则: 可以是字母,数字,下划线,$. 不能以数字开头. 见名之意. 驼峰规则 ...
- Python3.x:pip install pymssql安装时出错
Python3.x:pip install pymssql安装时出错 一.错误日志 error: Microsoft Visual C++ 14.0 is required. Get it with ...
- 防止CSRF的攻击—Origin和Referer
防止CSRF的攻击—Origin和Referer 为了防止CSRF的攻击,我们建议修改浏览器在发送POST请求的时候加上一个Origin字段,这个Origin字段主要是用来标识出最初请求是从哪里发起的 ...
- fabric网关模式文件上传与执行
- windchill相关功能操作
1.创建产品 2.创建文件夹 3.创建文档 4.创建用户账号 5.创建组 6.创建更改请求 7.创建部件新视图版本 8.创建可重用属性和全局枚举 9.在组织内分配上下文 ...