PHP - это объектно-ориентированный язык , и возможностей у него в этом направлении очень много, и совершенно глупо их не использовать. Для тех, кто не знаком с ООП предлагаю почитать эту статью: ООП в JavaScript . Основой ООП является объект , а фабрикой для создания объектов является класс . И как раз о создании кл...
PHP - это объектно-ориентированный язык, и возможностей у него в этом направлении очень много, и совершенно глупо их не использовать. Для тех, кто не знаком с ООП предлагаю почитать эту статью: ООП в JavaScript. Основой ООП является объект, а фабрикой для создания объектов является класс. И как раз о создании классов в PHP мы и поговорим в этом материале.
Класс состоит из следующих частей:
- Свойства.
- Конструктор.
- Методы.
Но прежде, чем добавлять все эти части давайте создадим описание класса (пусть файл называется "myclass.php"):
<?php
class MyClass {
}
?>Здесь мы создали пустой класс с именем "MyClass". Теперь добавим в наш класс свойства для нашего будущего объекта:
<?php
class MyClass {
public $x;
public $y;
const pi = 3.1415926;
}
?>Здесь мы создали три свойства (кстати, свойства иногда ещё называют полями). Обратите внимание, что они доступны за пределами класса (модификатор доступа - "public"). Если бы вместо "public" был бы "private", то они были бы доступны только внутри самого класса, а если "protected", то в самом классе и в наследниках (дочерних классах). Впрочем, более подробно, мы поговорим о них в следующих статьях.
Также мы добавили одну константу. И обратите внимание, что перед именем константы нет знака "$", то есть это не переменная, и этот знак ставить не надо.
Теперь создадим конструктор.
<?php
class MyClass {
public $x;
public $y;
const pi = 3.1415926;
public function __construct($x, $y) {
$this->x = $x;
$this->y = $y;
echo "Был создан объект с параметрами: $x и $y";
}
}
?>Конструктор в PHP - это функция __construct(). Этой функции мы можем передавать параметры, которые затем каким-либо образом использовать. В данном случае, мы получили параметры из конструктора и записали их в свойства класса. Обратите внимание, что обращение к свойствам класса надо обращаться через $this->имя_ свойства. Также мы вывели строку просто для того, чтобы Вы понимали, что в конструкторе Вы можете делать всё, что пожелаете (как в обычной функции).
Теперь перейдём к последнему пункту созданию класса - это добавление методов. Добавим метод, который считает и возвращает сумму свойств x и y, а также метод, возвращающий константу pi:
<?php
class MyClass {
public $x;
public $y;
const pi = 3.1415926;
public function __construct($x, $y) {
$this->x = $x;
$this->y = $y;
echo "Был создан объект с параметрами: $x и $y";
}
function sum() {
$sum = $this->x + $this->y;
return $sum;
}
function getPI() {
return self::pi;
}
}
?>Здесь всё очень просто: создаём переменную, в которую записываем сумму двух свойств: x и y. Потом возвращаем результат. Второй метод возвращает константу. Обратите внимание, что мы обращаемся с помощью такой конструкции: "self::имя_константы". Так обращаются к константе внутри класса.
А теперь главный вопрос: "Как использовать данный класс в PHP?". Для этого создаём ещё один файл, в котором пишем такой код:
<?php
require_once "myclass.php";
$myobj = new MyClass(15, 17);
echo "<br />";
echo $myobj->x;
echo "<br />";
echo $myobj->y;
echo "<br />";
echo MyClass::pi;
echo "<br />";
echo $myobj->sum();
echo "<br />";
echo $myobj->getPI();
?>Здесь мы сначала подключили наш класс, потом создали объект, передав конструктору параметры (15 и 17). Затем начали выводить свойства. Как видите, синтаксис такой: "имя_объекта->имя_свойства". Безусловно, данные свойства будут выводиться только если они public, а если они являются private или protected, то, соответственно, Вы увидите ошибку. Также обратите внимание на вывод константы: "имя_класса::имя_константы".
Затем мы используем два метода (sum() и getPI()) и печатаем возвращаемые ими значения.
Если Вы впервые знакомитесь с ООП, то, думаю, что сейчас Вы в шоке. И это неудивительно, ведь тема эта очень сложная, и по ней пишут целые тома. Я постараюсь в дальнейших статьях раскрыть эту тему, чтобы Вы поняли преимущество ООП, ведь почти все, кто пишет большие скрипты на PHP используют ООП, и без него действительно трудно обойтись. А если Вы делаете небольшие скрипты, то тогда ООП использовать совсем необязательно. Но поверьте моему опыту, что если Вы будете серьёзно программировать (необязательно на PHP), то ООП Вы будете использовать в будущем на полную катушку, и я постараюсь Вам дать тот фундамент, ту базу, от которой Вы сможете уже повышать свой уровень знаний по этой теме.
