2

PHP 对这段代码没有任何问题:

    interface IDateTimeProvider
    {
        public function date($format);
        public function time();
    }

    class DateTimeProvider implements IDateTimeProvider
    {
        public function date($format)
        {
            return date($format);
        }
        public function time()
        {
            return time();
        }
    }

date() 和 time() 函数是在该类中定义的......所以只要我将它保存在一个类中,我就可以使用预先存在的 PHP 函数命名我的函数,如 date()、time() 或 ob_start ()?

4

3 回答 3

2

date是的,在类中有名称为,等的函数没有任何问题time,因为它们不会与那些具有相同名称的预定义函数冲突。

甚至可以在不同的命名空间中拥有同名的类(如 C# 中的命名空间或 Java 中的包等)。

您也可以使用命名空间来定义具有该名称的函数。例如:

namespace myNamespace;


function time() //function defined in 'myNamespace'
{
    return \time(); // native function time();
}

注意:在使用命名空间访问“默认”命名空间中定义的函数和类时,您需要\在这些函数和类前面添加(例如,、、\stdClass\time()\strpos()

于 2012-12-11T06:34:49.443 回答
1

您可以在班级内进行,因为他们的真实姓名在内存中会像IDateTimeProvider::date. 这称为包装

如果你想让它们脱离一个类,你必须使用这样的命名空间:

namespace MyNamespace;
function time(){
    return \time();
 }

在另一个文件中,您将使用它\MyNamespace\time();

对于给定的函数,它是毫无用处的,我会记得 DateTime 存在于 PHP 中,并且比时间戳和他的生态系统强大得多。

于 2012-12-11T06:34:56.963 回答
0

的,你可以!

您是否尝试过运行您的代码?

是您的代码的键盘示例,它工作正常

于 2012-12-11T06:35:51.203 回答