10
|
Thomas Owens · 技术社区 · 16 年前 |
1
6
This page
可能会有用。(注意你说的不正确-
这是通过使用
使用时可以完成类似的工作
|
2
5
_ get()、uu set()和u call()是php所称的“magic methods”,这是一个绰号,我觉得这有点傻-我认为“hook”更合适。总之,我想…… 它们的目的是提供当数据成员(属性或方法) 不是 对象上定义的被访问,可用于各种各样的“聪明”思想,如变量隐藏、消息转发等。 但是,有一个成本-调用这些的调用比调用定义的数据成员慢大约10倍。 |
3
3
重新定义
|
4
2
魔法方法的另一个有用的应用,特别是
这种方法的隐藏好处是可以将视图对象彼此嵌套:
而在
一旦您
|
5
1
我认为这不利于代码的设计。如果你知道并做了一个好的设计,那么你就不需要使用
|
6
1
PHP允许我们动态地创建类变量,这会导致问题。您可以使用uuu set和uuu get方法来限制此行为。请参阅下面的示例…
为了防止出现上述情况,你可以这样做。
希望这有帮助… |
7
0
他们是为了做“聪明”的事情。
例如,您可以使用
|
8
0
Overloading 方法在处理包含易于访问的数据的PHP对象时特别有用。 __get() 在访问不存在的属性时调用, __set() 在尝试写入不存在的属性时调用,并且 __call() 在调用不存在的方法时调用。 例如,假设有一个类管理您的配置:
这使得对对象的读写变得容易得多,并使您在读写对象时能够更改使用自定义功能。 例子:
|
9
0
使用它们的一个很好的理由是在注册系统方面(我认为Zend框架将其实现为注册或配置类IIRC),因此您可以执行如下操作
这些属性中的每一个都是自动生成的配置对象,类似于:
显然,如果$conf->父级已经存在,则不会调用uuuget()方法,因此使用此方法生成新变量是一个很好的技巧。 请记住,我刚才引用的代码不是功能性的,我只是为了举例而快速地编写了它。 |
10
0
可能不是世界上最干净的设计,但我遇到了这样一种情况:我有很多代码引用了类中的实例变量,即:
但是后来,我想在某些情况下设置“value”时做一些特殊的事情,所以我重命名了value变量,并用我需要的更改实现了uu set()和uu get()。 其余的代码不知道有什么区别。 |
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |