你可以这样做,但它有点棘手。你必须做重载:
the __call and __callStatic魔法。
class test {
private $text;
public static function instance() {
return new test();
}
public function setText($text) {
$this->text = $text;
return $this;
}
public function sendObject() {
self::send($this->text);
}
public static function sendText($text) {
// send something
}
public function __call($name, $arguments) {
if ($name === 'send') {
call_user_func(array($this, 'sendObject'));
}
}
public function __callStatic($name, $arguments) {
if ($name === 'send') {
call_user_func(array('test', 'sendText'), $arguments[0]);
}
}
}
这不是一个理想的解决方案,因为它使你的代码更难以遵循,但它会工作,只要你有PHP> = 5.3。