TOC

This article has been localized into Russian by the community.

Классы:

Объявление и использование класса

После введения в классы в предыдущем параграфе мы наконец-то готовы написать свой самый первый класс. Он будет содержать информацию об каком-то обобщенном пользователе, например, пользователе вашего сайта.

Объявление класса в PHP выглядит очень похоже на объявление функции, но вместо ключевого слова function мы используем class. Начнем "заглушки" для нашего класса User (Пользователь):

<?php
class User
{
    
}
?>

Это ровно настолько просто, и как вы вероятно уже догадались, этот класс не делает абсолютно ничего. Однако, мы уже можем создать экземпляр класса с помощью ключевого слова new:

$user = new User();

Но поскольку класс User еще ничего не делает, объект $user также бесполезен. Давайте исправим это, добавив в класс пару переменных класса (полей) и метод:

class User
{
    public $name;
    public $age;
    
    public function Describe()
    {
        return $this->name . " is " . $this->age . " years old";
    }
}

Хорошо, мы столкнулись с парой новых концепций. Во-первых, мы объявили две переменных класса, name (имя) и age (возраст). Перед переменной name указан модификатор доступа "public", что по существу означает, что к переменной можно получить доступ снаружи класса. Мы подробнее рассмотрим модификаторы доступа в одном из следующих параграфов.

Далее мы определяем функцию Describe(). Как вы можете видеть, она выглядит обычное объявление функции, лишь с парой отличий. У нее в начале стоит ключевое слово public, которое задает модификатор доступа. Внутри функции мы используем переменную $this (этот), чтобы можно было обратиться к к переменным самого класса. $this - это особая переменная в PHP, которая доступна внутри методов класса и всегда ссылается на объект, в котором она используется.

Теперь давайте попробуем использовать наш новый класс. Следующий код должен идти после той части, в которой вы объявили класс:

$user = new User();
$user->name = "John Doe";
$user->age = 42;
echo $user->Describe();

Первое, что вы должны были заметить - это оператор -> (стрелка). Мы также использовали его в методе Describe(), и он просто означает, что мы хотим получить доступ к чему-то внутри объекта, который указан перед оператором. $user->name - это все равно что сказать: "Дай мне переменную name из объекта $user". В остальном это все равно что использовать обычную переменную, что мы и делаем дважды, для имени (name) и возраста (age) пользователя (объект $user). В последней строке мы вызываем метод Describe() из нашего объекта, который вернет строку с информацией о пользователе, имы выведем ее через echo. Результат должен выглядеть так:

John Doe is 42 years old (Перев. - Джону Доу 42 года)

Поздравляем, вы только что определили и использовали свой первый класс, но для работы с классами существует еще много возможностей. В следующих главах мы рассмотрим все возможности классов PHP.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!