当前位置:  首页  >  前端开发  >  Jquery

php面向对象编程:php魔术方法

默认不存在,但是如果用户定义了相关的方法,则在相应的情况发生时会自动执行的方法,称之为魔术方法。通常魔术方法都是以__开头

魔术方法:

默认不存在,但是如果用户定义了相关的方法,则在相应的情况发生时 会自动执行的方法,称之为魔术方法。通常 魔术方法都是以 __开头。

例如 __construct()  __destruct();

__toString();

当我们将一个对象当作字符串处理的时候会自动地调用__toString() 的方法。

通常都会返回对象的主要标志,作为输出结果:

魔术方法

__clone();

目前 只能通过new的方法获得新的对象,对象间的赋值 是引用传递。

但是 可以采用克隆技术 不通过实例化的形式获得对象,而是通过对已有对象的克隆来实现。 

php技术博客
php 博客

克隆执行构造方法么?不走构造方法。

Php中获得对象的方法有几种?2种 实例化 和 克隆。

克隆虽然不走 构造方法, 但是 如果存在__clone()这个魔术方法的话,会调用这个魔术方法。

__clone()这个方法的作用:通常克隆会产生一个一模一样的对象,但是在有时,可能需要对新对象的某些属性加以初始化。

__clone方法是o1(旧对象) 调用的还是 o2(新对象)调用的?新对象调用的。

clone

如果阻止对象被克隆?

将 __clone方法私有化。

php魔术方法

如果将 构造方法 与 __clone 方法都私有化了,结果会如何呢?

就不能在类外得到对象了。

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | json解析格式化 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有