Пример 2

Требуется создать класс Animal, который будет содержать данные о животных. В классе будут описаны две функции(методы класса): set_name и get_name. Также в классе описывается одна переменная(свойство класса).

class Animal

{

var $name;

function set_name ($text)

{

$this->name = $text;

}

function get_name ()

{

return $this->name;

}

}

Для создания объектов используется оператор new. Созданный объект может быть сохранен в переменной точно так же, как и обычное значение или массив. После создания объекта доступ к его свойствам и методам осуществляется при помощи оператора ->. Создание и использование объекта выглядит следующим образом:

$lion = new Animal;

$lion->set_name ("Бонифаций");

echo "Имя созданного льва: ", $lion->get_name(), ". ";

При выполнении фрагментов кода будет отображена следующая строка:

Имя созданного льва: Бонифаций

В РНР переменная не требует явного объявления и создается при первом упоминании о ней. Но для свойства класса этот принцип недействителен, и для его описания требуется использовать оператор var. После описания свойство класса доступно для всех его методов, в частности, для метода set name, который предназначен для запоминания имени животного.

class Animal

{

var $name;

function set_name ($text)

{

Для получения доступа к свойству класса изнутри его метода используется встроенная переменная $this, которая указывает на текущий объект данного класса. Переменная содержит указатель и используется совместно с оператором - >, таким образом, для ссылки на свойство name необходимо использовать следующий синтаксис: $this->name (следует обратить внимание, что перед именем свойства отсутствует знак $, синтаксис $this->$name является некорректным).

class Animal

{

var $name;

function set_name ($text)

{

$this->name = $text;

}

Другой метод класса, get_name, возвращает текущее имя животного:

class Animal

{

var $name;

function set_name ($text)

{

$this->name = $text;

}

function get_name ()

{

return $this->name;

}

Имеется возможность инициализации свойств класса при помощи константы, при этом использование любого вида выражений недопустимо:

class Animal

{

var $name = "Leo"; // Корректный оператор

var $name = "L"."e"."o"; // Ошибочный оператор

}

Описание класса не может быть разорвано HTML-кодом; весь класс целиком должен быть описан в рамках единой секции <?php...?>. Кроме того, поскольку в РНР имеются ряд встроенных методов, названия которых начинаются с символов (два подчеркивания), не следует использовать их в начале названий собственных методов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: