Що нового в php7.1: видимість констант.
Відео: Уроки PHP 7
Всім привіт! У цій статті ми розглянемо, як використовувати видимість констант в PHP 7.1.
Як завжди, давайте відразу почнемо з прикладів.
classCarProduct{
const VAT =77.00-
}
classMercedesextendsCarProduct{
//
}
$ product =newMercedes-
В такому коді ми можемо отримати значення константи таким чином:
echo $ product::VAT-
Тепер уявімо, що ми не хочемо, щоб значення можна було отримати таким чином, а тільки за допомогою методу, в якому будемо приєднувати знак відсотка.
classCarProduct{
const VAT =77.00-
publicfunction getVat(){
returnself::VAT.`%`-
}
}
Тепер ми можемо отримати доступ таким чином:
echo $ product-gt;getVat() -
Проблема в тому, що константа все так же залишається у відкритому доступі, і ми можемо отримати її значення так, як ми це робили раніше. Що ми можемо зробити, щоб заблокувати можливість отримання значення константи таким чином, оскільки ми хочемо, щоб її значення могло бути отримано тільки за допомогою методу?
Для вирішення цього питання в PHP 7.1 були додані вже добре нам знайомі ключові слова: public, protected і private. Працюють вони так само, як і зі змінними.
Давайте змінимо наш код:
Відео: Уроки PHP 7 | Цікли.While.Do-While.For.Foreach.If
// ...
protectedconst VAT =77.00-
// ...
Тепер, якщо ми спробуємо отримати доступ безпосередньо, то отримаємо помилку:
echo $ product::VAT-
Але зможемо отримати значення константи за допомогою методу. Якщо ви хочете, щоб отримувати значення константи можна було тільки всередині класу, де вона описана, то використовуйте ключове слово private.
А на цьому сьогодні все. Дякую за увагу!
- Що нового в php7.1: поліпшення обробки $ this.
- Що нового в php7.1: поліпшення для деконструкції масивів.
- Що нового в php7.1: обнуляє типи.
- Що нового в php7.1: генерація випадкових чисел.
- Що нового в php7.1: нові повідомлення про помилки.
- Що нового в php7.1: ключове слово void.
- Команда setlocal - зміна змінних середовища для поточного командного файлу.
- Об`єкт math в jаvascript
- Об`єкт number в jаvascript
- Нові функції в php 5.5.
- Nodejs. Шаблони модулів.
- Новинки в php7. Частина 3.
- jаvascript змінні
- Константи в php
- Простори назв в php.
- Створення класу в php
- Reflection api. Reflectionparameter.
- Анонімні, або лямбда-функції в php.
- Новинки в php7. Частина 2.
- Математичні функції в php
- Створення движка на mvc. Виводимо сторінки. Частина 4.