2

如何修改内置 php 函数的返回值而不用另一个名称创建新函数并将以前名称的所有已使用函数重命名为新函数?例如

function time() {
    return time()-1000;
}

当然这不会通过,是不是有类似“function time() extends time() {}”之类的东西?

4

3 回答 3

5

使用APD PECL 扩展,您可以重命名覆盖内置函数。

//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 旨在用于调试目的,因此这不是您应该真正考虑用于生产代码的技术。

于 2011-07-10T10:44:20.957 回答
2

你不能这样做。

考虑使用date_default_timezone_set()andsetlocale()

于 2011-07-10T10:36:48.013 回答
1

你为什么要覆盖 PHP 的函数呢?如果某些功能不能满足您的需求,请创建您自己的功能。如果它覆盖,请使用不同的名称或创建一个类并将函数放入其中。

你试图实现的是一个错误的问题解决方案!!!

一些例子

而不是函数名称time(),您可以制作cTime()(自定义时间)就像我创建自己的函数print_r()一样printr(),以我的方式打印数组

或类似的东西

class FUNCTIONS {
    public function time() {
        return time()-1000;
    }
}
//Now access using
FUNCTIONS::time();
于 2011-07-10T11:01:32.603 回答