在PHP中,是否存在同名的类和函数可能以任何方式发生冲突或导致问题?例如:
function Foobar(){
// ...
}
class Foobar{
// ...
}
粗略的测试表明PHP可以根据上下文来区分它们。
答案 0 :(得分:5)
不,他们永远不会发生碰撞。但是:
如果你这样做,你会让所有人感到困惑,因为我不希望有一个函数和一个同名的类。许多人甚至不知道这样做是合法的。
当我看到一个大写名称在PHP(第一个字母)中,我认为它是一个类。如果你把()放在它周围,我会知道它是一个函数。但我不认为有一个同名的类。你所做的就是迷惑人。有些人可能会假设:“很酷,我不知道你可以省略new
”。我不知道你的意图是什么,但如果要删除new
关键字 - 只有那个 - 那就非常糟糕。我会假设你做更多而不仅仅是那个,并且会去检查那个函数实际上做了什么,如果我发现除了返回一个没有做任何事情的新实例之外什么也没做什么我会生气的。我只是浪费时间查找一个功能...... 没有。