PHP Namespace 直接与间接使用

PrintE-mail
Thursday, 08 September 2011 22:58  

这个问题,不用命名空间永远也碰不到。用了的话,或许碰得头破血流也想不到。

这段代码:

$controller = '\SomeSpace\SomeClass';
$data = $controller::someMethod($invalidate);

有啥问题?而直接用:

$data = \SomeSpace\SomeClass::someMethod($invalidate);

肯定没问题。

到底出了什么问题???

 

答曰:PHP有点问题 。。。2

记住下面的结论就行了:

// 错误
$controller = '\SomeSpace\SomeClass';
$data = $controller::someMethod($invalidate); 

// 正确
$controller = 'SomeSpace\SomeClass';
$data = $controller::someMethod($invalidate); 

// 正确
$data = \SomeSpace\SomeClass::someMethod($invalidate); 

// 错误
$data = SomeSpace\SomeClass::someMethod($invalidate);

 

原因?你懂的。

 

回复

留个脚印儿吧.


回复