PHP - это объектно-ориентированный язык , и возможностей у него в этом направлении очень много, и совершенно глупо их не использовать. Для тех, кто не знаком с ООП предлагаю почитать эту статью: ООП в JavaScript . Основой ООП является объект , а фабрикой для создания объектов является класс . И как раз о создании кл...

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

PHP - это объектно-ориентированный язык, и возможностей у него в этом направлении очень много, и совершенно глупо их не использовать. Для тех, кто не знаком с ООП предлагаю почитать эту статью: ООП в JavaScript. Основой ООП является объект, а фабрикой для создания объектов является класс. И как раз о создании классов в PHP мы и поговорим в этом материале.

Класс состоит из следующих частей:

  1. Свойства.
  2. Конструктор.
  3. Методы.

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