我很惊讶为什么在我们有不同的类和构造函数名称时调用构造函数。构造函数名称以小“r”开头?
class Registration{
function registration(){
echo "Constructor is called.";
}
}
$obj = new Registration();
//$obj->registration();
输出: 调用构造函数。
修饰: 这种不区分大小写的行为是否依赖于我们正在使用的php版本?
答案 0 :(得分:7)
在php中,所有函数名称are case-insensitive。
顺便说一下,你应该切换到new-style __construct
。构造函数作为具有类名称的函数是历史工件。
答案 1 :(得分:7)
php不区分大小写(有时)。以下也适用:
CLASS REGISTRATION {
FUNCTION reGISTration(){
ECHO "constructor is called.";
}
}
$obj = NEW Registration();
答案 2 :(得分:0)
我认为两个名字都是一样的..
因为当您尝试在同一页面中声明名称为“registration”的类时,它会给出一个错误,指出您无法重新声明该类..
在这种情况下,它不区分大小写
答案 3 :(得分:0)
PHP不区分大小写,但这并不能解释行为。
这种行为是因为具有相同名称的函数被视为构造函数。
请参阅http://php.net/manual/en/language.oop5.decon.php - 示例2
所以对于任何给定名称的函数都是如此,EG:
class Dog{
function dog(){
echo "Constructor is called.";
}
}
$obj = new Dog();
$obj->dog();