最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

php魔术方法的认识

来源:动视网 责编:小采 时间:2020-11-02 18:24:14
文档

php魔术方法的认识

php魔术方法的认识:在php中将所有以__即两个下划线开头的类方法保留为魔术方法,PHP中魔术方法有__construct()、__destruct()、__call()、__callStatic()、__get()等等。推荐:《PHP视频教程》魔术方法 __construct(), __destr
推荐度:
导读php魔术方法的认识:在php中将所有以__即两个下划线开头的类方法保留为魔术方法,PHP中魔术方法有__construct()、__destruct()、__call()、__callStatic()、__get()等等。推荐:《PHP视频教程》魔术方法 __construct(), __destr


在php中将所有以“__”即两个下划线开头的类方法保留为魔术方法,PHP中魔术方法有“__construct()”、“__destruct()”、“__call()”、“__callStatic()”、“__get()”等等。

推荐:《PHP视频教程》

魔术方法

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被称为魔术方法(Magic methods)。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。

Caution

PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。

__sleep() 和 __wakeup()

public __sleep ( void ) : array

__wakeup ( void ) : void

serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。如果存在,该方法会先被调用,然后才执行序列化操作。此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。如果该方法未返回任何内容,则 NULL 被序列化,并产生一个 E_NOTICE 级别的错误。

Note:

__sleep() 不能返回父类的私有成员的名字。这样做会产生一个 E_NOTICE 级别的错误。可以用 Serializable 接口来替代。

__sleep() 方法常用于提交未提交的数据,或类似的清理操作。同时,如果有一些很大的对象,但不需要全部保存,这个功能就很好用。

与之相反,unserialize() 会检查是否存在一个 __wakeup() 方法。如果存在,则会先调用 __wakeup 方法,预先准备对象需要的资源。

__wakeup() 经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作。

文档

php魔术方法的认识

php魔术方法的认识:在php中将所有以__即两个下划线开头的类方法保留为魔术方法,PHP中魔术方法有__construct()、__destruct()、__call()、__callStatic()、__get()等等。推荐:《PHP视频教程》魔术方法 __construct(), __destr
推荐度:
标签: 方法 php 了解
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top