#7. 2 php Создание класса
Primary tabs
Класс является набором переменных и функций, или, в терминах ООП, свойств и методов. Класс является одним из типов данных. Создавая объекты определенного класса, их можно сохранять в переменных. В предыдущем разделе в качестве примера был приведен класс Animal, который будет подробно рассмотрен ниже. Описание класса начинается с ключевого слова class, за которым следует имя создаваемого класса:
class Animal
{
...
}
Класс предназначен для хранения имени животного, и для этой цели объявляется локальная переменная $name, называемая в ООП свойством. Ключевое слово private является модификатором доступа и указывает на то, что свойство $name доступно только внутри класса. Несмотря на то, что в описании указывается знак $, свойство традиционно обозначается просто своим именем, в данном случае name.
class Animal
{
private $name;
...
}Замечание 1: Ключевое слово var при определении свойств класса
При определении свойства класса вместо модификатора доступа может использоваться ключевое слово var:
class Animal
{
var $name;
...
}
Это связано с тем, что в старых версиях PHP ограничивать доступ к членам класса было нельзя, и все они неявно имели модификатор |
После описания свойство класса доступно для всех его методов, в частности, для метода set_name, который предназначен для запоминания имени животного.
class Animal
{
private $name;
public function set_name($text)
{
...
}
...
}
Ключевое слово public является ещё одним модификатором доступа, который указывает на то, что доступ к методу set_name объекта класса Animal имеется в любом месте, где объявлен данный объект.
Замечание 2: Ограничения при определении методов класса
Имеются некоторые ограничения при определении методов класса. Например, не поддерживается перегрузка методов класса, т.е. создание в одном классе нескольких методов с одинаковыми именами, которые различались бы только типами и количеством аргументов. Например, такое описание класса Animal будет ошибочным:
class Animal
{
private $name;
public function set_name($text)
{
...
}
public function set_name($text1, $text2) //ошибка — нельзя перегружать методы
{
...
}
...
}
Также, в отличие от некоторых языков программирования, в PHP нельзя переопределить стандартные арифметические операторы (например, |
Для получения доступа к свойству класса изнутри его метода используется встроенная переменная $this, которая указывает на текущий объект данного класса. Переменная содержит указатель и используется совместно с оператором ->, таким образом, для ссылки на свойство name необходимо использовать следующий синтаксис: $this->name (следует обратить внимание, что перед именем свойства отсутствует знак $), синтаксис $this->$name является некорректным).
class Animal
{
private $name;
public function set_name($text)
{
$this->name = $text;
}
...
}
Другой метод класса, get_name, возвращает текущее имя животного:
class Animal
{
private $name;
public function set_name($text)
{
$this->name = $text;
}
public function get_name()
{
return $this->name;
}
}
На этом описание класса Animal завершено, и в следующем разделе будет продемонстрировано его использование. Имеется возможность инициализации свойств класса при помощи константы, при этом использование любого вида выражений недопустимо:
class Animal
{
private $name = "Leo"; // Корректный оператор
private $name = "L"."e"."o"; // Ошибочный оператор
}
Описание класса не может быть разорвано HTML-кодом; весь класс целиком должен быть описан в рамках единой секции <?php...?>. Кроме того,поскольку в РНР имеется ряд встроенных методов, названия которых начинаются с символов __ (два подчеркивания), не следует использовать их в начале названий собственных методов.
- Log in to post comments
- 1005 reads
mariyas
Fri, 09/15/2023 - 10:24
Permalink
Добавлено: "замечание 2"
Добавлено: "замечание 2"