инициализация объекта в php?
Что такое инициализация объекта в php?
Если можно своими словами а не слать на википедию или подобные ресурсы с терминами.
Что такое инициализация объекта в php?
Если можно своими словами а не слать на википедию или подобные ресурсы с терминами.
Различают создание объекта и инициализацию объекта.
Создание объекта не присваивает его полям никаких значений.
Инициализация - это присваивание объекту начальных значений всем его свойствам.
Как правильно привел пример Frisian:
class myCar{
     public $koleso = 4;
     public $rul = 1;
     public $dveri = 4;
}
А можно переписать так, где начальных значений свойств нет:
class myCar{
     public $koleso;
     public $rul;
     public $dveri;
}
Создаем неинициализированный объект: $car = new myCar( );
Инициализируем его (инициализируем все его значения) :
$car->koleso = 4;
$car->rul = 1;
$car->dveri = 4;
Но как правило операцию создания и инициализации объединяют вместе с помощью начальных значений и конструктора класса.
Ну при инициализации объекта как бы создается объект которому задаются базовые какие то характеристики. .
например у вас Класс машина. . у машины 4-ре колеса, 1 руль, 4 двери
class myCar{
public $koleso = 4;
public $rul = 1;
public $dveri = 4;
}
При создании объекта этого класса в нем будут сразу доступны поля с установленными данными (которые вы потом можете или не можете менять) ! вот это и есть типа инициализация )
Сначала вы описываете объект, например класс
class foo
{
public $name = '';
function do_foo()
{
echo "Doing foo.";
}
}
затем вы его инициализируете, то есть создаете экземпляр данного класса. . до этого вы просто "рассказали" как класс выглядит и что он умеет.
$bar1 = new foo;
и теперь можете обращаться к методам данного класса
$bar1->do_foo();
можете установить переменную $name во что то
$bar1->name = 'Name1';
после того, как вы описали объект, вы можете создавать много копий его, изначального. .
$bar2 = new foo;
$bar2->name = 'Name2';
вот теперь есть два объекта $bar1 и $bar2, которые представляют собой экземпляры класса foo, но с различными значениями переменной $name в нем.
если на пальцах, то описание объекта это как описание общих признаков человека (или чего то еще) - голова, руки, ноги, туловище и так далее (class Человек). . когда вы инициализируете объект, то создаете человека из этого "шаблона", эдакую пустышку.
он становится индивидуальной копией, которая и "наполняется" чем то индивидуальным (вызов его функций, выставление значений переменных) и является экземпляром класса Человек ))
class Man {
private $name;
private $hair_color;
function __construct($name) {
$this->name = $name;
}
public function walk() {
echo $this->name . ' is walking
';
}
public function sleep() {
echo $this->name . ' is sleeping
';
}
public function set_hair_color($color) {
$this->hair_color = $color;
}
public function describe_yourself() {
echo 'Hello!
My name is ' . $this->name . ' and I have ' . $this->hair_color . ' hair
';
}
}
$man1 = new Man('Peter');
$man2 = new Man('Bob');
$man1->set_hair_color('blondy');
$man2->set_hair_color('dark');
$man1->describe_yourself();
$man2->describe_yourself();
$man1->sleep();
$man2->walk();
получим:
Hello!
My name is Peter and I have blondy hair
Hello!
My name is Bob and I have dark hair
Peter is sleeping
Bob is walking
пхп язык программирования, значит объект надо то ли переписать в пхп, то ли воткнуть как-то)