【发布时间】:2012-11-07 02:25:19
【问题描述】:
在 PHP 中,我可以使用 myFunc() 而不是 \myFunc() 从另一个命名空间访问全局命名空间中的函数。如果 myFunc 在当前命名空间中无法解析,PHP 会自动回退到全局命名空间。
推荐的方法是什么? \myFunc() 或 myFunc()?
【问题讨论】:
标签: php function namespaces
在 PHP 中,我可以使用 myFunc() 而不是 \myFunc() 从另一个命名空间访问全局命名空间中的函数。如果 myFunc 在当前命名空间中无法解析,PHP 会自动回退到全局命名空间。
推荐的方法是什么? \myFunc() 或 myFunc()?
【问题讨论】:
标签: php function namespaces
如果你想实现某种多态性或完全改变函数的逻辑,第二个选项会更好。像这样。
namespace Nkamm;
// like a PHP6
function strstr($needle, $haystack)
{
return \strstr($haystack, $needle);
}
var_dump(strstr('t', 'Long test'));
结果:
string(4) "test"
但我不想做这样的“重载”,因为这会导致混乱(直到它们被严格记录在项目中)。因此,覆盖现有函数是没有意义的。
总结:将函数保存在命名空间中,使用不带任何反斜杠的全局函数。
【讨论】: