4. ООП в PHP5. Свойства класса

👁 56 просмотров

Настало время поговорить о свойствах класса(или полях). Если в ООП класс описывает какую-то сущность, реальный объект, то он, чтобы описать этот объект должен содержать некие переменные, в которых находятся количественная харектиристика того или  иного объекта в действии. Допустим, у нас есть класс фигуры круга, то каждый экземпляр должен содержать свойства данной фигуры -цвет, координаты, размер радиуса в различных местах его использования вот для таких целей нам и нужны переменные(свойства).   Каждое свойство может иметь один из 3 модификаторов доступа — public, protected и private:

 
class Circle{
       public $x=0;
       protected $z=0;
       private $y=0;
//Методы для установки данных
public function setX($new_x)
{
$this->x=$new_x;
}
public function getY($new_y)
{
$this->y=$new_y;
}
public function getZ($new_z)
{
return $this->z=$new_z;
}

//Методы для получения данных
public function getX()
{
return $this->x;
}
public function getY()
{
return $this->y;
}
public function getZ()
{
return $this->z;
}
}

//Создадим объект
$newObj=new Circle();
/*1 способ установки и получения значений свойств для объекта*/
//Зададим свойства через метод установки
$newObj->setX(1);//Можно-через метод можно задать значение открытому св-ву
$newObj->setY(2);//Можно-через метод можно задать значение защишенному св-ву
$newObj->setZ(3);//Можно-через метод можно задать значение закрытому св-ву
//Получим свойства через методы возврата
echo $newObj->getX(1);//Можно-через метод можно получить значение открытого св-ва
echo $newObj->getY(2);//Можно-через метод можно получить значение защишенного св-ва
echo $newObj->getZ(3);//Можно-через метод можно получить значение закрытого св-ва
/*2 способ установки и получения значений свойств для объекта*/
//Зададим свойства через сам объект
$newObj->x=1;//Можно-через объект можно задать значение открытому св-ву
$newObj->y=2;//Нельзя-через объект нельзя задать значение защишенному св-ву
$newObj->z=3;//Нельзя-через объект нельзя задать значение закрытому св-ву
//Получим значения свойств через объект
echo $newObj->x;//Можно-через объект можно взять значение открытого св-ва
echo $newObj->y;//Нельзя-через объект нельзя взять значение защишенного св-ва
echo $newObj->z;//Нельзя-через объект нельзя взять значение закрытого св-ва

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