首页 > 编程知识 正文

php常用魔术方法,php魔法方法

时间:2023-05-03 13:38:25 阅读:234191 作者:428

1.理解PHP中神奇方法的定义

2.了解__clone()魔术方法的使用场景

3.掌握__clone()魔术方法的用法

PHP将所有以_ _(两个下划线)开头的类方法保留为神奇的方法。因此,在定义类方法时,除了上面提到的神奇方法之外,建议不要用它们作为_ _的前缀。

当我们想在克隆中对一个对象做一些特殊的逻辑处理时,我们可以在这个类中定义一个神奇的方法,这个神奇的方法就是__clone,然后在其中编写我们自己的特殊业务逻辑。

摘要:

1.PHP中__clone的格式在类中定义如下:公共函数__clone()。请注意,它必须是2 _ _,必须是__clone,并且必须接受0个参数,不允许一个多一个少

2.克隆对象时,系统将自动触发对象所在类的已定义__clone方法

每个总结都是通过实践获得的。现在我们用实践来演示总结,这可以促进理解,使每个总结更清晰,更直观地理解。

实际目标:

1.PHP中__clone的格式在类中定义如下:公共函数__clone()。请注意,它必须是2 _ _,必须是__clone,并且必须接受0个参数,不允许一个多一个少

具体代码如下:

操作的结果是:

空白的

声明说没有错误。

接下来,让我们尝试向这个__clone方法添加参数,看看它是如何工作的。

操作的结果是:

致命错误:方法Animal:__clone()不能接受第11行中的任何参数

从错误报告信息来看,该方法不能携带任何参数,因此应该记住这一点。

案例2,

实际目标:

1.克隆对象时,系统将自动触发对象所在类的已定义__clone方法

具体代码如下:

我们发现事实上我们没有手动调用__clone方法,也就是说,我们没有编写$ani-__clone(),但是这个方法仍然被执行,因为为什么?因为我们写了$ ani2=克隆$ ani;这相当于手动复制一个$ani对象,然后在这个类中定义这个magic方法,所以它就像magic一样,突然它被自动执行

这里必须指出的是,有两个下划线,而不是一个。否则,这不是魔法方法。让我们再做一次测试。

具体代码如下:

操作的结果是:

空白的

这意味着__clone方法没有被自动调用,所以请记住它是带有两个下划线的_ _方法。

1.本文主要研究php中__clone magic方法的具体使用场景和具体实现方法。

我希望这篇文章能给你一些帮助,谢谢!

以上是php魔术方法_ _克隆(代码示例)的详细内容,请关注PHP中文网站上的其他相关文章!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。