PHP中$this和$that指针使用实例


Posted in PHP onJanuary 06, 2015

PHP5中定义了一个特殊的方法名“__clone()”方法,是在对象克隆时自动调用的方法,用“__clone()”方法将建立一个与原对象拥有相同属性和方法的对象,如果想在克隆后改变原对象的内容,需要在__clone()中重写原本的属性和方法,“__clone()”方法可以没有参数,它自动包含$this和$that两个指针,$this指向复本,而$that指向原本,具体实例如下:

<?php

class Person {

    // 下面是人的成员属性

    var $name; // 人的名字

    var $sex; // 人的性别

    var $age; // 人的年龄

              // 定义一个构造方法参数为属性姓名$name、性别$sex 和年龄$age 进行赋值

              // function __construct($name="", $sex="",$age="")

    function __construct($name, $sex, $age) {

        $this->name = $name;

        $this->sex = $sex;

        $this->age = $age;

    }

    // 这个人可以说话的方法, 说出自己的属性

    function say() {

        echo "我的名字叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this

        ->age . "<br>";

    }

    // 对象克隆时自动调用的方法, 如果想在克隆后改变原对象的内容,需要在__clone()中重写原来的属性和方法。

    function __clone() {

        // $this 指的复本p2, 而$that 是指向原本p1,这样就在本方法里,改变了复本的属性。

        $this->name = "我是复制的张三$that->name";

        // $this->age = 30;

    }

}

$p1 = new Person ( "张三", "男", 20 );

$p2 = clone $p1;

$p1->say ();

$p2->say ();

?>

成功运行此PHP程序后的结果如下:

我的名字叫:张三 性别:男 我的年龄是:20

我的名字叫:我是复制的张三 性别:男 我的年龄是:20
PHP 相关文章推荐
2.PHP入门
Oct 09 PHP
php目录管理函数小结
Sep 10 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
Aug 16 PHP
phpmyadmin打开很慢的解决方法
Apr 21 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
Nov 04 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
php缓冲输出实例分析
Jan 05 #PHP
php中fsockopen用法实例
Jan 05 #PHP
php中Socket创建与监听实现方法
Jan 05 #PHP
php实现计数器方法小结
Jan 05 #PHP
php下Memcached入门实例解析
Jan 05 #PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 #PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 #PHP
You might like
其他功能
2006/10/09 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
php生成二维码
2015/08/10 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
Python 字符串中的字符倒转
2008/09/06 Python
Python enumerate遍历数组示例应用
2008/09/06 Python
python+opencv实现动态物体识别
2018/01/09 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
Office DEPOT法国官网:欧迪办公用品采购
2018/01/03 全球购物
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
创先争优承诺书范文
2014/03/31 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
国情备忘录观后感
2015/06/04 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书