【发布时间】:2011-09-30 01:42:35
【问题描述】:
我有一组名为 getThing($what, $extra_args) 的方法(get 总是出现在名称中)
...除了正常的称呼方式外,我还希望能够像这样称呼他们:
getWhatThing()=>return getThing($what, $extra_args);WhatThing()=>echo getThing($what, $extra_args);Thing('what')=>echo getThing('what', $extra_args);如果所有这些都失败抛出方法不存在错误...
如何在 __call() 中执行此操作?
我知道我应该避免使用魔法方法,但我想让那些将使用我的 API 的人生活得更轻松:)
谢谢
【问题讨论】:
-
为了满足我的好奇心:它是如何让您的 API 对其他人更容易的?
-
让使用您的 API 的人的生活更轻松:不要实现此功能。
-
你为什么这么说?这不就是 __call 的用途吗?
-
真的吗?为什么你想让你的班级变得如此神奇和可怕?相同功能的 4 种不可见方法...
__call()可能用于类似的事情,但这并不意味着您必须不惜一切代价使用它.与真正的方法相比没有任何好处。
标签: php regex string string-matching magic-methods