开发者

Override default php function

开发者 https://www.devze.com 2023-01-20 08:25 出处:网络
I have script wherein basename() is used 100-1000s of time, I was just thinking if we can override the function rather than changing the function name to something else in all scripts.

I have script wherein basename() is used 100-1000s of time, I was just thinking if we can override the function rather than changing the function name to something else in all scripts.

The proble开发者_高级运维m with basename() is that it doesnt works well with names of files in foreign languages. I found one on php site http://php.net/manual/en/function.override-function.php but it needs PECL any other alternative?


You can use namespaces to override existing function names:

namespace blarg;
function basename() {
  return 'whatever';
}
$base = basename();

I.e., any call to basename() within the blarg namespace will use your new version of the function.


An alternative would be runkit. But that's as unlikely to be enabled on most servers.


You can change the locale before calling basename:

setlocale(LC_ALL, 'en_US.UTF8');

setlocale

0

精彩评论

暂无评论...
验证码 换一张
取 消