Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Сайтостроение (уроки по HTML, PHP, MySQL, веб-дизайну)


Информационный Канал Subscribe.Ru

Основы PHP. Рассылки сайта progs.biz
Выпуск № 36
 
Начало > PHP > Основы > Урок 38

STL - стандартная библиотека шаблонов С++.
STL - стандартная библиотека шаблонов С++
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 38.

PHP
Урок 38. Модификаторы доступа в классе

В 5 версии PHP у членов класса появилосись модификаторы доступа. В старых версиях PHP все члены имели фактически один тип доступа - они были видны в любом месте программы. Для этого использовалось ключевое слово var, которое сейчас не рекомендуется использовать. Оно оставлено в языке только из соображений совместимости. Теперь, начиная с 5-й версии, вы можете использовать для членов класса различные типы доступа, так что PHP приблизился к другим объектно-ориентированным языкам.

Всего существует 3 модификатора доступа: public (доступно всем), private (доступно только самому классу) и protected (доступно самому классу и всем его потомкам). Модификатор доступа надо писать перед каждым членом класса (как, например, в Java или в C#). Обратите внимание, что если не написать модификатор доступа, то он по умолчанию подразумевается public (а не private, как в большинстве других языков).

Вот пример с использованием модификаторов доступа:

<?
class Person
{
    protected $age;
    public function GetAge()
    {
        return $this->age;
    }
    public function SetAge($age)
    {
        if($age > 0)
        {
            $this->age = $age;
        }
        else
        {
            $this->age = 20;
        }
    }

}
class BigPerson extends Person
{
    public function SetAge($age)
    {
        if($age > 10)
        {
            $this->age = $age;
        }
        else
        {
            $this->age = 10;
        }
    }
}
?>
<p>Использование класса</p>
<?
    $q = new Person();
    $q->SetAge(2);
    echo $q->GetAge();
    echo "&lthbr>";
    $q1 = new BigPerson();
    $q1->SetAge(3);
    echo $q1->GetAge();
    echo "&lthbr>";
?>

Выведет указанный фрагмент 2 и 10 соответственно.

Обратите внимание, что мы не можем написать в нашей программе при использовании класса

$q->age = 33;

так как переменная $age - закрытая (private). Также обратите внимание, что класс BigPerson работает с переменной $age, несмотря на то, что она объявлена в классе-предке. Это возможно, так как эта переменная имеет модификатор доступа protected.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2005 сайт progs.biz
© 2002-2005 Игорь Алексеев

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.weblessons
Архив рассылки
Отписаться
Вспомнить пароль

В избранное