Преимущества использования конструктора?

В моих поисках, пытаясь узнать больше о ООП в PHP. Я много раз сталкивался с конструкторской функцией и просто больше не могу ее игнорировать. По моему мнению, конструктор вызван в момент создания объекта, это правильно?

Но зачем мне нужно создавать этот конструктор, если я могу использовать «обычные» функции или методы как их вызванные?

приветствия, Кейт

Да, конструктор вызывается, когда объект создается.

Небольшим примером полезности конструктора является

class Bar { // The variable we will be using within our class var $val; // This function is called when someone does $foo = new Bar(); // But this constructor has also an $var within its definition, // So you have to do $foo = new Bar("some data") function __construct($var) { // Assign's the $var from the constructor to the $val variable // we defined above $this->val = $var } } $foo = new Bar("baz"); echo $foo->val // baz // You can also do this to see everything defined within the class print_r($foo); 

ОБНОВЛЕНИЕ: вопрос также спросил, почему это следует использовать, примером реальной жизни является класс базы данных, в котором вы вызываете объект с именем пользователя и паролем и таблицей для подключения, к которой будет подключаться конструктор. Затем у вас есть функции для выполнения всей работы в этой базе данных.

Конструктор позволяет гарантировать, что объект будет помещен в определенное состояние, прежде чем пытаться его использовать. Например, если у вашего объекта есть определенные свойства, необходимые для его использования, вы можете инициализировать их в конструкторе. Кроме того, конструкторы позволяют эффективно инициализировать объекты.

Идея конструктора состоит в том, чтобы подготовить исходный набор данных для объекта, чтобы он мог вести себя ожидаемо.

Just call a method не является сделкой, потому что вы можете забыть это сделать, и это не может быть указано как «требуется до работы» в синтаксисе, поэтому вы получите «сломанный» объект.

Конструкторы хороши для множества вещей. Они инициализируют переменные в вашем классе. Предположим, вы создаете класс BankAccount. $ b = новый BankAccount (60); имеет конструктор, который дает банковскому счету начальное значение. Они устанавливают переменные внутри класса в принципе или могут также инициализировать другие классы (наследование).

Конструктор предназначен для инициализации, когда объект создается.

Вы не хотели бы вызывать произвольный метод для вновь созданного объекта, потому что это противоречит идее инкапсуляции и потребует, чтобы код, используя этот объект, обладал внутренним знанием его внутренней работы (и требует больше усилий).