Найти в Дзене

Немного вглубь. Объектно ориентированное программивоание в PHP.

Это называется PHP OOP.
Возможно кто-то уже слышал об этом. Использование объектно-ориентированного программирования в PHP стало возможным начиная с 5 версии PHP. Вообще самому этому методу уже не одно десятилетие. Но чаще он применяется для создания десктопных приложений, и много реже используется в интернет программировании. И напрасно.
Что такое PHP OOP, давайте углубимся.
Преимущества PHP
Оглавление

Это называется PHP OOP.

Возможно кто-то уже слышал об этом. Использование объектно-ориентированного программирования в PHP стало возможным начиная с 5 версии PHP. Вообще самому этому методу уже не одно десятилетие. Но чаще он применяется для создания десктопных приложений, и много реже используется в интернет программировании. И напрасно.

Что такое PHP OOP, давайте углубимся.

Преимущества PHP OOP.

  • Код исполняется быстрее.
  • Улучшается структура программы, она лучше воспринимается.
  • Удаляются множественные повторы фрагментов кода. Что в конечном итоге уменьшает размер программы.
  • Экономия времени(и места).

Вам надо разделить все «сущее» всего на два типа: классы и объекты.

Классы это множество объектов с сходными свойствами(например все красные. Или все жидкие).

Как это записать? Описать?

Простой пример синтаксиса кода:

<?php
class Fruit {
// здесь код...
}
?>

Далее. Объявим класс и переменные для объектов:

<?php
class Fruit {
// Properties
public $name;
public $color;

// Methods
function set_name($name) {
$this->name = $name;
  }
function get_name() {
return $this->name;
  }
}
?>

Этот код вам выведет «ничего». Здесь просто декларация. Рабочий код выглядит так:

<!DOCTYPE html>
<html>
<body>
<?php
class Fruit {
// Properties
public $name;
public $color;
// Methods
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');
echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>
</body>
</html>

Этот код все же еще не умеет различать свойства объектов. Добавим «цвет» :)) :

<!DOCTYPE html>
<html>
<body>
<?php
class Fruit {
// Properties
public $name;
public $color;
// Methods
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
function set_color($color) {
$this->color = $color;
}
function get_color() {
return $this->color;
}
}
$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "<br>";
echo "Color: " . $apple->get_color();
?>
</body>
</html>

Это уже интереснее. Можно разработать более сложные примеры при необходимости.

Далее. Некоторые дополнительные возможности.

$this – ключевое слово.

$this отсылает к текущему объекту. Может использоваться только внутри методов. Что такое методы? Мы уже применяли их выше:

set_name() and get_name()

Это они.

Пример:

<?php
class Fruit {
public $name;
}
$apple = new Fruit();
?>

Как изменить свойства переменной $name? Можно сделать это внутри класса:

<?php
class Fruit {
public $name;
function set_name($name) {
    $this->name = $name;
}
}
$apple = new Fruit();
$apple->set_name("Apple");
?>

Или напрямую:

<?php
class Fruit {
public $name;
}
$apple = new Fruit();
$apple->name = "Apple";
?>

Ну и напоследок, как узнать какому классу принадлежит объект? Иногда может пригодиться:

<?php
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>

Здесь появляется оператор instanceof.

Заключение.

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

Спасибо за внимание. Загляните на мой блог. Там много всего разного интересного. Я не пишу там хлам, потому обновляется не каждый день... Вот вам ссылка. Я вам буду благодарен, если просто перейдете. Блог надо продвигать :))

Удачного дня! Я сюда часто не пишу. У меня нет цели забрать у Яши денег :)) У меня цель забрать денег со своего блога :)). Потому жду вас там :))