__construct () против SameAsClassName () для конструктора в PHP - PullRequest
67 голосов
/ 20 октября 2008

Есть ли преимущество в использовании __construct() вместо имени класса для конструктора в PHP?

Пример (__construct):

class Foo {
    function __construct(){
        //do stuff
    }
}

Пример (по имени):

class Foo {
    function Foo(){
        //do stuff
    }
}

Использование метода __construct (первый пример) возможно начиная с PHP 5.

Наличие метода с тем же именем, что и у класса в качестве конструктора (второй пример), возможно с версии PHP 4 до версии 7.

Ответы [ 11 ]

0 голосов
/ 06 июня 2013

Я думаю, что главная причина в том, что это языковая конвенция. Вам не нужно заставлять язык вести себя как кто-то другой.

Я имею в виду, в Objective-C вы, например, перед конструкторами добавляете -init Вы можете создать свой собственный конструктор, используя имя вашего класса, но почему? Есть ли какая-то причина использовать эту схему вместо языкового соглашения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...