В РНР5 введены модификаторы доступа, которые управляют видимостью атрибутов и методов. Модификатор доступа указывается перед объявлением атрибута или метода. РНР5 поддерживает следующие три различных модификаторов доступа:
- Модификатор доступа
public
(общедоступный), устанавливаемый по умолчанию, означает открытый доступ к атрибуту или методу, что сродни полному отсутствию модификатора доступа. Элементы подобного рода доступны как изнутри, так и извне класса. - Модификатор доступа private (приватный) означает, что помеченный им элемент может быть доступен только изнутри класса. Его можно применять для всех атрибутов, если не использовать функции доступа
__get()
и__set ()
. В отношении методов данный модификатор указывается, если тот или иной метод является служебным и предназначенным только для внутренних целей класса. Приватные элементы не наследуются. - Модификатор доступа
protected
(защищенный) означает, что помеченный им элемент может быть доступен только изнутри класса. Он также существует во всех субклассах. Сейчасprotected
можно воспринимать как нечто среднее междуpublic
иprivate
.
Рассмотрим пример:
class classname
{
public $attribute;
public function __get($name)
{
return $this -> $name;
}
public function __set ($name, $value)
{
$this _> $name = $value;
}
}
Сейчас каждый ключевой элемент класса предварен соответствующим модификатором доступа. Ключевые слова public
можно не указывать, поскольку этот модификатор присутствует по умолчанию, однако, если в коде присутствуют и другие модификаторы доступа, то указание public
может упростить чтение всего кода.
Обратите внимание на отсутствие ключевого слова var
, которое просто заменено модификатором public
. В данном примере все элементы были сделаны общедоступными.
Вызов операций класса
Операции класса можно вызвать в основном темже способом, каким вызываются атрибуты класса. Если в нашем распоряжении имеется следующий класс:
class classname
{
function operation1()
{
}function operation2($param1, $param2)
{
}
}
и мы создаем объект типа classname
с именем $a следующим образом:
$a = new classname ();
то мы можем вызвать операции так же, как вызывали другие функции: используя их имя и указывая в круглых скобках любые требуемые ими параметры. Поскольку эти операции принадлежат объекту, а не являются обычными функциями, необходимо указать объект, к которому они относятся. Имя объекта используется так же, как атрибуты объекта, а именно:
$a -> operation1();
$a -> operation2(12, 'test');
Если операции что-то возвращают, то возвращаемые данные можно получить следующим образом:
$x = $a -> operation1();
$y = $a -> operation2(12, 'test');
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться