Создание класса в PHP


Создание класса в PHP 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), то ООП Вы будете использовать в будущем на полную катушку, и я постараюсь Вам дать тот фундамент, ту базу, от которой Вы сможете уже повышать свой уровень знаний по этой теме.