php – 用户定义的魔术方法:什么是“记录的魔术功能”?

前端之家收集整理的这篇文章主要介绍了php – 用户定义的魔术方法:什么是“记录的魔术功能”?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题很简单,这里是上下文:

http://php.net/manual/en/language.oop5.magic.php

Magic Methods

The function names __construct(),__destruct(),__call(),
__callStatic(),__get(),__set(),__isset(),__unset(),__sleep(),__wakeup(),__toString(),__invoke(),__set_state() and __clone() are magical in PHP classes. You cannot have functions with these names in
any of your classes unless you want the magic functionality associated
with them.

PHP reserves all function names starting with __ as magical. It is recommended that you do not use function names with __ in PHP unless you want some documented magic functionality.

我得到了这些方法的用途以及如何使用它们.我不明白的是:

…unless you want some documented magic functionality.

那有什么意思?是否有实际的原因来创建用户定义的__magicMethods()?

我认为它们只是意味着最好不要使用__作为你的方法的起始名称,因为PHP已经为他的魔法方法保留了这个约定,如果你将它用于一个方法,它可能在将来被覆盖并且有一些魔法功能.至少那是我理解的

编辑 – 更清楚:让我们说你为自己的业务逻辑实现一个名为__toNumber()的方法.在PHP的未来版本中,他们决定每当一个对象被用作数字时(可能当你执行$result = 3 * $yourObject)时,将调用魔术方法__toNumber()…你的对象会有一些“魔法”记录的功能,即使您没有专门添加

原文链接:https://www.f2er.com/php/137656.html

猜你在找的PHP相关文章