![]() |
1
7
不知道最佳实践,但当需要延迟加载属性时(例如,当获取涉及复杂钙化或数据库查询时),g e t会非常有用。此外,php通过简单地创建同名的对象字段来提供缓存响应的优雅方法,从而防止再次调用getter。
|
![]() |
2
3
这取决于你试图解决的问题,但一般来说,我不是来自于思想学派,魔术方法只应该用来解决现有的问题,而这些问题是不能用其他实用的方法解决的,而不是把它们作为设计的基础。 你所做的很多事情都可以用真正的getter/setter来处理。PHP没有真正的属性,因此将它们强加于您的类肯定是不可取的。 |
![]() |
3
2
你来自爪哇,是吗? 不管怎样,如果你只是不加选择地获取和设置这些财产,就把它们公之于众。如果需要对数据执行其他操作(除了分配给变量和读取变量之外),请使用get、set和private属性。
|
![]() |
4
1
不,这不是因为这些神奇的方法是拦截器,可以在PHP抛出错误之前处理对不可访问属性的任何调用。他们不能代替适当的接球手和二传手。 They also behave differently as stated in the Manual:
他们也是 slower to execute with a significant performance impact . 你的API也会变得不那么透明,因为所有神奇的事情都会让人费解。 |
![]() |
Karlo · PHP Sqlite PDO最新版本 4 月前 |
![]() |
Malte · 检查远程服务器上是否存在文件(使用PHP)[关闭] 4 月前 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 5 月前 |