русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Уровни доступа


Дата добавления: 2015-07-09; просмотров: 603; Нарушение авторских прав


Для свойств и методов можно определить уровень доступа. В PHP определены три таких уровня:

· public (открытый): Метод/свойство доступны из любого места в коде;

· private (закрытый): Закрытые методы или свойства доступны только внутри класса;

· protected (защищённый): Защищённый метод или свойства доступны только внутри класса, где они были объявлены, и из его производных классов.

Для задания уровня доступа при объявлении имени свойства указывается слово, соответствующее уровню доступа (public, private и protected соответственно). Перед ключевым словом function для метода также может быть указано слово для определения уровня доступа. Если перед именем метода не указывается ключевое свойство для уровня доступа, то считается, что метод доступа public.

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

 

Пример с различными уровнями доступа

Пример:

 

<?php
// определяем класс
class Fio_Class
{
public $first_name;
protected $second_name;
private $family;

function set_name ($par1, $par2, $par3 )
{
$this->first_name = $par1;
$this->second_name = $par2;
$this->family = $par3;
}

public function set_first ($par1 )
{
$this->first_name = $par1;
}

protected function set_second ($par1)
{
$this->second_name = $par1;
}

private function set_family ($par1 )
{
$this->first_family = $par1;
}
}

class Employer_Class extends Fio_Class
{
public $department;

function set_name2($par1, $par2, $par3, $par4 )
{
// метод определен без указания уровня доступа значит,
// будет public корректный вызов
$this->set_name( $par1, $par2, $par3 );



// вызываем public метод
// корректный вызов
$this->set_first( $par1 );

// вызываем protected метод
// корректный вызов
$this->set_second( $par2 );

// вызываем private метод
// !!! не корректный вызов !!!
$this->set_family( $par3 );

// public свойство, можем присвоить значение
$this->first_name = $par1;

// protected свойство, можем присвоить значение
$this->second_name = $par2;

// !!! private свойство, значение присваивать нельзя
$this->$family = $par3;
}
}

// создаем объект
$obj1 = new Employer_Class();

// вызываем метод для объекта
$obj1->set_name2( "Иван", "Иваныч", "Иванов", "Менеджер" );

// будет ошибка, поскольку пытаемся получить доступ
// к private свойству
echo $obj1->family . "<br />";

// будет ошибка, поскольку пытаемся получить доступ
// к protected свойству
echo $obj1->second_name . "<br />";
?>



<== предыдущая лекция | следующая лекция ==>
Особенности передачи объектов в классы | Абстрактные классы и интерфейсы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.396 сек.