覆盖默认的PHP功能

Shi*_*ant 7 php overriding function

我有脚本,其中basename()使用100-1000s的时间,我只是想我们是否可以覆盖函数而不是将函数名称更改为所有脚本中的其他内容.

问题basename()是,它不适用于外语文件的名称.我在php网站http://php.net/manual/en/function.override-function.php上找到了一个,但它需要PECL其他任何替代方案吗?

Ale*_*sky 7

您可以使用命名空间覆盖现有函数名称:

namespace blarg;
function basename() {
  return 'whatever';
}
$base = basename();
Run Code Online (Sandbox Code Playgroud)

即,在blarg命名空间中对basename()的任何调用都将使用您的新版本的函数.

  • 请记住,只有PHP 5.3及更高版本支持名称空间. (3认同)
  • 使用反斜杠作为函数名称的前缀,以指示您希望在根命名空间中使用该名称:\ basename(); (3认同)