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()?
答案 0 :(得分:2)
是的,在类中使用名称为date
,time
等的函数没有任何问题,因为它们与那些具有相同名称的预定义函数不冲突。
您可以在不同的namespaces中使用相同名称的类(如C#中的命名空间或Java中的包等)。
您还可以使用命名空间来定义具有该名称的函数。例如:
namespace myNamespace;
function time() //function defined in 'myNamespace'
{
return \time(); // native function time();
}
注意:在使用命名空间访问“default”命名空间中定义的函数和类时,您需要在这些函数和类之前添加\
(例如\stdClass
, \time()
,\strpos()
等。)
答案 1 :(得分:1)
你可以在课堂上做,因为他们的真实姓名在内存中会像IDateTimeProvider::date
。这称为包装。
如果你想让它们脱离类,你必须使用这样的命名空间:
namespace MyNamespace;
function time(){
return \time();
}
在另一个文件中,您将使用\MyNamespace\time();
对于给定的函数,它是无用的,我会记住你,DateTime存在于PHP中,并且比时间戳和他的生态系统更强大。
答案 2 :(得分:0)