问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php的魔法方式包含哪些

发布网友 发布时间:2023-09-06 21:35

我来回答

1个回答

热心网友 时间:2023-09-11 04:34


在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利。PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发。
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(),__wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被称为魔术方法(Magic methods)。 (推荐学习:PHP视频教程)
注:在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。
注意:PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。
__sleep() 和 __wakeup()
public __sleep ( void ) : array
__wakeup ( void ) : voidserialize() 函数会检查类中是否存在一个魔术方法 __sleep()。如果存在,该方法会先被调用,然后才执行序列化操作。此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。如果该方法未返回任何内容,则 NULL 被序列化,并产生一个 E_NOTICE 级别的错误。
Note:
__sleep() 不能返回父类的私有成员的名字。这样做会产生一个 E_NOTICE 级别的错误。可以用 Serializable 接口来替代。
__sleep() 方法常用于提交未提交的数据,或类似的清理操作。同时,如果有一些很大的对象,但不需要全部保存,这个功能就很好用。
与之相反,unserialize() 会检查是否存在一个 __wakeup() 方法。如果存在,则会先调用 __wakeup 方法,预先准备对象需要的资源。
__wakeup() 经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作。
<?php
class Connection
{
protected $link;
private $server, $username, $password, $db;

public function __construct($server, $username, $password, $db)
{
$this->server = $server;
$this->username = $username;
$this->password = $password;
$this->db = $db;
$this->connect();
}

private function connect()
{
$this->link = mysql_connect($this->server, $this->username, $this->password);
mysql_select_db($this->db, $this->link);
}

public function __sleep()
{
return array('server', 'username', 'password', 'db');
}

public function __wakeup()
{
$this->connect();
}
}
?>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 不在担任本科院校长保留正厅级,手里还有权吗 鲜姜放冰箱冷藏好吗 生姜放冰箱保存好吗 全自媒体运营师如何报名 为什么原电池可以提高氧化还原反应速率 为什么原电池要维持电中性 神笔马良全部绘本 铝合金喷油后高温高湿测试后出现白斑是什么问题 哈尔滨市招公益性岗位辅警改革的吗? 我刚刚不小心吐半个牙签下肚子~!我该怎么办?? 咔叽伍长的ce怎么样 如何让身材变好更好?健康减肥需要做些什么? 神笔马良插画-求神笔马良里面的一幅插图读后感怎么写?50字? 神笔马良好书推荐卡 巴黎沙龙活动注重文化艺术方面修养吗 法国最著名的文化活动是什么 酸枣仁,柏子仁能和鸡血藤,黑蚂蚁一起配伍吗? 三个规定填报表格 哈尔滨民安街附近哪里卖游泳圈 充氮气的轮胎可以补充普通空气吗??? 家里的冰箱摆放注意事项一览 蓝色马尾斗鱼是热带鱼吗 怎么养(附图) 热带鱼尾巴变蓝色了怎么回事啊 嘉兴有没有买封闭三轮摩托车 用言字组词,再造句。1.骗人的话叫()2.没有根据的话叫()3.诚恳劝告的话叫() 称是多音字吗怎么组词 中航光电科技有限公司执只招应届生吗 ta是什么元素 小白猫抓着小黑猫不放 特别经典感悟人生短句80句 消防车停车位搭建钢结构雨棚要求 welink发不了图片 血泪经验__普通女孩3个必看的择偶建议 《我成了隔壁总裁的随身闺女》txt下载在线阅读全文,求百度网盘云资源 《团宠小可爱成了满级大佬》txt下载在线阅读全文,求百度网盘云资源 《我成了霸总亲闺女》txt下载在线阅读全文,求百度网盘云资源 《我成了大佬亲闺女》txt下载在线阅读全文,求百度网盘云资源 《穿成大佬的娇软美人》txt下载在线阅读全文,求百度网盘云资源 晨阳水性漆静彩馨7合|舍不得钻漆请问专家甲醛含多少,装修后什么时候能住人请 某茶厂种植“春蕊牌”绿茶,由历年来市场销售行情知道,从每年的3月25日起的180天内,