gpt4 book ai didi

php - 用户定义的魔法方法 : What is "documented magic functionality"?

转载 作者:可可西里 更新时间:2023-11-01 12:32:55 25 4
gpt4 key购买 nike

我的问题很简单,这里是上下文:

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 的 future 版本中,他们决定无论何时将对象用作数字(也许当您执行 $result = 3 * $yourObject 时)魔术方法 __toNumber()将被调用...您的对象将具有一些“魔术”记录的功能,即使您没有专门添加它也是如此

关于php - 用户定义的魔法方法 : What is "documented magic functionality"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9701186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com