Открыть меню    

PHP: объектно-ориентированное программирование для начинающих

ооп в php Мысль о том, что стоит создать класс, вполне возможно, вызовет у вас смятение - желание отложить это дело до лучших времен, особенно, если вы в этом деле новичок. Класс – это прежде всего набор функций, предназначенных для совместного использования. Каждая функция создается под конкретную задачу. Класс, как правило, вещь универсальная, поэтому может быть использована на многих веб-страницах, которые вы когда-нибудь да создадите.

Преимущество в использовании классов : так как класс это набор связанных функций, то, определив единожды класс, вам не придется при необходимости повторять все те же функции в скрипте, а достаточно будет определить объект класса и вызвать необходимые методы через вновь созданный объект.

Чтобы определить класс в PHP достаточно указать после слова class имя класса, а сам код поместить между фигурными скобками.

class my_first_class {}

Любую переменную внутри класса обычно называют свойством класса. Каждому свойству класса должно предшествовать ключевое слово var (или можете использовать public , private , protected ). Защищенные переменные (перед которыми стоит ключевое слово protected ) обычно начинаются с символа подчеркивания, например:

protected $_name = ‘Настя’;

Если вы объявили переменную (свойство) класса, доступ к ней внутри класса можно получить с помощью оператора $this-> , который ссылается на текущий объект. Ключевое слово public говорит о том, что свойство или метод могут быть доступно за пределами класса. Если перед переменной или методом внутри класса стоит ключевое слово protected , то доступ к переменной (методу) будет возможен только внутри класса.

Наличие public static $var в классе или, что если метод объявлен, как static?
Это переменная (обозначенная через static), объявленная в контексте класса. И доступна она только через класс, например some_class::$static_var или self::$static_var (внутри класса).
Метод, например, validate() (также часть класса) определен как static. Это означает, что его можно вызвать непосредственно с помощью конструкции some_class::validate(), без создания объекта класса.

Важно : если вы обращаетесь к свойству посредством оператора -> , знак доллара в имени переменной опускается. Например:

$this ->_name

При создании экземпляра класса (объекта) класс автоматом вызывает метод-конструктор класса, который инициализирует объект (создавая объект, сразу задаем значения некоторых свойств объекта). Метод конструктор обозначается как __construct() . При создании конструктора вы можете использовать вместо __construct имя класса.

Public   function __construct($arg)     {$this ->var_one = $arg;}

Создаем экземпляр класса с именем $exmp , одновременно передавая конструктору переменную $lolo в качестве аргумента:

$exmp = new my_first_class($lolo);

Вызываем метод объекта $exmp :

$exmp->method_one();

Итак для начало стоит уяснить простую вещь: объект (или экземпляр класса) предоставляет доступ к методам (или функциям) определенным в классе.

Определяем класс

<?php
class MyCar
{

}
?>

Свойства класса

<?php
class MyCar
{
public $name;
public $color;
public $price;
}
?>

Метод-конструктор класса

<?php
class MyCar
{
public $name;
public $color;
public $price;

public function __construct($name, $color, $price)
{
$this->name = $name;
$this->color = $color;
$this->price = $price;
}
}
?>

Создаем метод класса

<?php
class MyCar
{
public $name;
public $color;
public $price;

public function __construct($name, $color, $price)
{
$this->name = $name;
$this->color = $color;
$this->price = $price;
}

public function showDetails() {
print "{$this->name} | {$this->color} | {$this->price} USD";
}
}
?>

Создаем экземпляр класса

<?php
class MyCar
{
   public $name;
   public $color;
   public $price;

   public function __construct($name, $color, $price)
   {
      $this->name = $name;
      $this->color = $color;
      $this->price = $price;
   }

   public function showDetails() {
      print "Hi, I have just produced a {$this->name} - {$this->color} | {$this->price} USD <br />";
   }
}

// создаем первый экземпляр класса
$car1 = new MyCar("BMW", "Black", "40000");


// создаем второй экземпляр класса
$car2 = new MyCar("Volkswagen", "Golf", "15000");

// вызываем метод  showDetails() объекта $car1
$car1->showDetails();      //Hi, I have just produced a BMW – Black | 40000 USD


// вызываем метод  showDetails() объекта $car2
$car2->showDetails();      //Hi, I have just produced a Volkswagen – Golf | 15000 USD
?>

Как видите, основы ООП легки в понимании.
Источник кода

Комментарии к статье

Добавить комментарий