php $that,PHP中$this和$that指针使用实例
PHP中$this和$that指针使用实例
PHP5中定义了一个特殊的方法名“__clone()”方法,是在对象克隆时自动调用的方法,用“__clone()”方法将建立一个与原对象拥有相同属性和方法的对象,如果想在克隆后改变原对象的内容,需要在__clone()中重写原本的属性和方法,“__clone()”方法可以没有参数,它自动包含$this和$that两个指针,$this指向复本,而$that指向原本,具体实例如下:
代码如下:
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 . "
";
}
// 对象克隆时自动调用的方法, 如果想在克隆后改变原对象的内容,需要在__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中文网,转载请注明出处,感谢您的尊重!
php $that,PHP中$this和$that指针使用实例相关推荐
- c语言二级指针有什么作用,C语言中二级指针的实例详解
C语言中二级指针的实例详解 C语言中二级指针的实例详解 用图说明 示例代码: #include int main(int argc, const char * argv[]) { // int a = ...
- VC++ 从View类获取各种指针编程实例
新建一个多文档工程:名为GetPtrDemo: 在视类OnDraw函数,获取其他类指针:然后进行一些操作: 首先获取应用程序类指针:可以获取到:然后利用它输出程序名: CGetPtrDemoApp* ...
- C语言数组指针和指针数组实例演示
一.数组指针 1.简介 数组指针就是指向数组的指针. 定义方式:int (*p)[len] = NULL; 示例: #include <stdio.h> int main() {int a ...
- 指针函数和函数指针(附实例详解)
今天遇到指针函数和函数指针的问题,就直接把它彻底地分析了一遍,总结如下: 指针函数与函数指针表示方法的不同,千万不要混淆.最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是 ...
- 关于C语言中的数组指针、指针数组以及二级指针
概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...
- c语言中的字节和元素,C语言指向数组元素的指针
指向数组元素的指针和运算法则 所谓指向数组元素的指针,其本质还是变量的指针.因为数组中的每个元素,其实都可以直接看成是一个变量,所以指向数组元素的指针,也就是变量的指针. 指向数组元素的指针不难,但很 ...
- C++指针与地址详解 _0
指针的概念 ◆ 1."存储器"的概念 文件柜–>文件柜上的抽屉–>抽屉上的编号 对应于: 存储器-–>存储单元-–>存储单元的地址 ◆ 2.存储器的使用 1 ...
- C#指针使用学习总结
C#中指针的使用 http://www.cnblogs.com/caibq/archive/2011/09/11/Cai_Yao.html 在C#中,有时候希望通过指针来操作内存,这样可以提高效率.我 ...
- go reflect 取指针_Go的方法集详解
女主宣言 Go语言以其本身具有的高并发特性,在云计算开发中,得到了广泛的应用,也深受广大开发者的欢迎.但是大家对go语言真的了解了么?本文作者经过对go语言的多年实践应用,现对go语言中的方法集进行了 ...
最新文章
- java url 拦截_Spring mvc设置某些url不被interceptor拦截器拦截的方法
- 基于Python的BPSK音频的波形和频谱
- django可以生成exe文件吗_把 Django 程序打包为 exe 可执行文件
- zabbix2.4域用户配置
- Cloud for Customer Restriction and Exclusion Product Lists
- 不同用户同时并发测压_程序猿学GO:并发
- idea2019打卡没多久就闪退_IDEA 2020.1打开时闪退的问题及解决方法(完美解决方法)...
- HTML5托拽上传(XMLHttpRequest和Google Gears)
- Java学习系列及数据结构博客全目录
- MySQL中数据表的查操作
- carplay是否可以用安卓系统_Microsoft Teams正在支持CarPlay通话,我还是期待微信支持CarPlay...
- linux(计划任务)
- STAMP:扩增子、宏基因组统计分析神器(中文帮助文档)
- 直播视频分辨率码率参考设置
- requests 模块获取免费的代理并检测代理 IP 是否有效!
- 《人机交互技术》第二章 感知和认知基础
- [caffe] Long-term Recurrent Convolutional Networks
- TRIZ系列-创新原理-14~15-曲面化原理和动态性原理
- Groovy语言 Grails框架入门
- What are default and maximum values of dev_loss_tmo in Red Hat Enterprise Linux 6
热门文章
- hdu 1518 dfs+剪枝
- 【报告分享】2022电商行业趋势报告.pdf
- 上百篇论文概览『负采样方法』的前世今生
- 阿里广告技术最新突破!全链路联动——面向最终目标的全链路一致性建模
- python session模块_Python requests模块session代码实例
- 小白学python3实战做量化分析平台_Python3 量化分析从小白到破产笔记
- java http soap_在Spring中发布SOAP HTTP Webservice - Java杂家 - Blo...
- 联想打印机 linux驱动怎么安装步骤,如何在MAC系统下安装打印机驱动
- Leetcode每日一题:197.rising-temperature(上升的温度)
- 数学建模7 多元线性回归分析