В чем разница между объектом и классом в PHP? Я спрашиваю, потому что, я действительно не вижу смысла для них обоих.
Можете ли вы сказать мне разницу с хорошим примером ?
Я предполагаю, что вы прочитали руководство по базовому PHP OOP.
Класс – это то, что вы используете для определения свойств, методов и поведения объектов. Объекты – это то, что вы создаете из класса. Подумайте о классе как о плане , а о объекте, как о фактическом здании, которое вы строите, следуя чертежу (классу). (Да, я знаю, что аналог проекта / здания был доведен до смерти.)
// Class class MyClass { public $var; // Constructor public function __construct($var) { echo 'Created an object of MyClass'; $this->var = $var; } public function show_var() { echo $this->var; } } // Make an object $objA = new MyClass('A'); // Call an object method to show the object's property $objA->show_var(); // Make another object and do the same $objB = new MyClass('B'); $objB->show_var();
Объекты здесь разные (A и B), но они оба являются объектами класса MyClass
. Возвращаясь к аналогии проекта / здания, подумайте об этом, используя тот же план, чтобы построить два разных здания.
Вот еще один фрагмент, который на самом деле говорит о зданиях, если вам нужен более буквальный пример:
// Class class Building { // Object variables/properties private $number_of_floors = 5; // Each building has 5 floors private $color; // Constructor public function __construct($paint) { $this->color = $paint; } public function describe() { printf('This building has %d floors. It is %s in color.', $this->number_of_floors, $this->color ); } } // Build a building and paint it red $bldgA = new Building('red'); // Build another building and paint it blue $bldgB = new Building('blue'); // Tell us how many floors these buildings have, and their painted color $bldgA->describe(); $bldgB->describe();