Why is my constructor still called even if the class and constructor case are different?

前端 未结 4 1739
伪装坚强ぢ
伪装坚强ぢ 2020-12-21 01:58

I am surprised for why the constructor is called when we have different class and constructor name. Constructor name is starting with small \"r\"?

class Regi         


        
相关标签:
4条回答
  • 2020-12-21 02:23

    I think both names are same ..

    because when you try to declare the class with name "registration" in same page, it will give you an error that states that you can not re declare the class..

    in this case , it is not case sensitive

    0 讨论(0)
  • 2020-12-21 02:28

    In php, all function names are case-insensitive.

    By the way, you should switch to the new-style __construct. Constructors as functions with the name of the class are a historical artifact.

    0 讨论(0)
  • 2020-12-21 02:29

    PHP is case insensitive, but this doesn't explain the behaviour.

    This behaviour is because a function with the same name of the class is treated as the constructor.

    See http://php.net/manual/en/language.oop5.decon.php - Example 2

    So this is true for functions of any given name, EG:

    class Dog{
    
        function dog(){
            echo "Constructor is called.";
        }
    }
    
    $obj = new Dog();
    $obj->dog();
    
    0 讨论(0)
  • 2020-12-21 02:33

    php is case-insensitive (sometimes). The following would work as well:

    CLASS REGISTRATION {
    
        FUNCTION reGISTration(){
            ECHO "constructor is called.";
        }
    }
    
    $obj = NEW Registration();
    
    0 讨论(0)
提交回复
热议问题