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.