如何在不创建具有其他名称的新功能的情况下修改内置php函数的返回值,并将以前名称的所有已使用函数重命名为新函数? e.g。
function time() {
return time()-1000;
}
当然这不会通过,是不是有类似“function time()extends time(){}”之类的东西?
答案 0 :(得分:5)
使用APD PECL扩展程序,您可以rename和override内置函数。
//we want to call the original, so we rename it
rename_function('time', '_time()');
//now replace the built-in time with our override
override_function('time', '', 'return my_time();');
//and here's the override
function my_time($){
return _time()-1000;
}
APD用于调试目的,因此这不是您应该为生产代码考虑的技术。
答案 1 :(得分:2)
你做不到。
考虑使用date_default_timezone_set()
和setlocale()
答案 2 :(得分:1)
为什么要覆盖PHP的功能呢?如果某些功能没有达到您想要的功能,那么创建自己的功能。如果它覆盖,请使用其他名称或创建一个类并将该函数放入其中。
你想要达到的目标是解决问题的错误方法!!!
一些例子
而不是功能名称time()
,您可以cTime()
(自定义时间)
就像我为print_r()
创建我自己的函数printr()
以我的方式打印数组
或类似
class FUNCTIONS {
public function time() {
return time()-1000;
}
}
//Now access using
FUNCTIONS::time();