魔术__call方法的字符串匹配

时间:2011-07-07 00:02:30

标签: php regex string string-matching magic-methods

我有一组名为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的人们的生活更轻松:)

由于

2 个答案:

答案 0 :(得分:1)

你所问的是无意义的。
您的所有方法都应该return $var

此时如果你想回应它,你需要做一些感兴趣的事情:

echo getThing();

答案 1 :(得分:0)

__call的

The code in this comment on PHP.net's documentation应该是一个很好的起点,但是你需要在切换部分添加更多匹配。