В разделе "Модификаторы доступа ООП PHP" мы узнали, как и когда использовать модификаторы публичного и приватного доступа. В то время как к публичным переменным и методам можно обратиться извне класса, к приватному коду можно получить доступ только изнутри класса.
В этом разделе практикума мы сможем применить на практике все, что узнали об использовании модификаторов публичного и приватного доступа, написав наш собственный код.
Практикум
* Нажмите на кнопку "Решение", чтобы увидеть предлагаемое нами решение.
Мы используем модификатор private для того, чтобы:
A Ограничить доступ к классу.
B Ограничить доступ к свойствам.
C Ограничить доступ к методам.
D B+C
Решение:
D Мы используем модификатор private, чтобы предотвратить доступ извне области класса к свойствам и методам класса. Модификатор privateтак же, как и модификатор public имеют отношение только к свойствам и методам, и не имеют никакого влияния на классы.
Блокнот, чтобы попрактиковаться в кодировании*Этот код не сохраняется и никуда не отправляется*
<?php
//Ваш код
Упражнения по кодированию
Вернемся к классу User, который мы разработали на предыдущих занятиях, но теперь давайте определим $firstName как приватное свойство.
Это класс User:
class User {
// ваш код будет здесь
}
Создайте новое свойство класса с именем $firstName и предотвратите изменение значения свойства любым кодом извне класса с помощью соответствующего модификатора доступа (private or public).
Решение:
class User {
// Мы используем приватный модификатор, чтобы предотвратить доступ к коду извне// класса от изменения значения свойстваprivate $firstName;
}
Блокнот, чтобы попрактиковаться в кодировании*Этот код не сохраняется и никуда не отправляется*
<?php
//Ваш код
Создайте метод для установки значения свойства $firstName. Используйте модификатор доступа для метода (public/private).
Решение:
class User {
// Мы используем приватный модификатор, чтобы предотвратить доступ к коду извне
// класса от изменения значения свойстваprivate $firstName;
// Публичный метод позволяет нам установить свойство $firsNamepublicfunction setFirstName($str)
{
$this -> firstName = $str;
}
}
Блокнот, чтобы попрактиковаться в кодировании*Этот код не сохраняется и никуда не отправляется*
<?php
//Ваш код
Теперь создайте метод, который вернёт значение $firstName.
Решение:
class User {
// Мы используем приватный модификатор, чтобы предотвратить доступ к коду извне
// класса от изменения значения свойстваprivate $firstName;
// Публичный метод позволяет нам установить свойство $firsNamepublicfunction setFirstName($str)
{
$this -> firstName = $str;
}
// Публичный метод получения позволяет нам возвращать свойство $firsNamepublicfunction getFirstName()
{
return $this -> firstName;
}
}
Блокнот, чтобы попрактиковаться в кодировании*Этот код не сохраняется и никуда не отправляется*
<?php
//Ваш код
Создайте новый объект пользователя с именем $user1, установите для него имя "Joe" и выведите его имя.
Ожидаемый результат:
Joe
Решение:
class User {
// Мы используем приватный модификатор, чтобы предотвратить доступ к коду извне
// класса от изменения значения свойстваprivate $firstName;
// Публичный метод позволяет нам установить свойство $firsNamepublicfunction setFirstName($str)
{
$this -> firstName = $str;
}
// Публичный метод getter позволяет нам возвращать свойство $firsNamepublicfunction getFirstName()
{
return $this -> firstName;
}
}
$user1 = new User();
$user1 -> setFirstName("Joe");
echo $user1 -> getFirstName();
Блокнот, чтобы попрактиковаться в кодировании*Этот код не сохраняется и никуда не отправляется*
<?php
//Ваш код
Вам понравился этот урок?
А хотите стать востребованным специалистом "PHP, Laravel, Symfony..." и получить востребованную профессию?
Вы получите профессию своей мечты, помощь в трудоустройстве в компаниях-партнёрах.
Не теряйте время зря! Нажмите зеленую кнопку, чтобы заглянуть в будущее и начать раскрывать свой потенциал уже сегодня!
Комментарии
<code>
, несколько строчек кода — в теги<pre><code>
...ваш код...</code></pre>
.