Що нового в php7.1: поліпшення обробки $ this.
Всім привіт! У цій статті ми розглянемо, яку користь торкнулися обробки $ this в PHP 7.1.
Дуже велика ймовірність, що ви навіть ніколи не чули про таку проблему і що ніколи б з нею не зіткнулися, але знати про неї, все-таки потрібно.
Відео: "Розвиток гілки PHP-7", Дмитро Стогів (Zend Technologies)
Давайте відразу розглянемо приклад:
classCalculator{
protected $ result =0-
publicfunction getResult(){
return $ this-gt;result-
}
publicfunction add($ number){
$ result =`This`-
$$ result = $ this-gt;result + $ number-
// те ж саме, що $ this = $ this-gt; result + $ number-
var_dump($ this) -
}
}
$ calculator =newCalculator-
$ calculator-gt;add(2) -
echo $ calculator-gt;getResult() -
Тут ми в методі add () змінної $ result присвоюємо значення рівне рядку this. Далі ми використовуємо два знака долара для того, щоб створити динамічно ім`я змінної. Тобто $$ result це те ж саме, що $ this, тому ім`я для змінної береться з значення зазначеної після двох знаків долара змінної. Детальніше про це ви можете почитати на офіційному сайті в розділі variable variables.
Відео: ЯК ПОЛІПШИТИ ЗБРОЯ В CS: GO?
Якщо ми тепер спробуємо за допомогою var_dump () подивитися, чому дорівнює $ this, то побачимо, що воно однаково не об`єкту, як ми могли очікувати, а int (2) 0. Це сталося через те, що ми перезаписали $ this на значення $ This-gt; result + $ number.
Але це станеться тільки в PHP 7.0. В PHP 7.1 ми отримаємо Fatal Error, яка говорить нам про те, що неможливо перезаписати $ this.
Як вже було сказано, ви навряд чи б коли-небудь зіткнулися з такою проблемою в реальному житті, але тепер ви знаєте, що таке можливо і що варто очікувати в такому випадку.
А на цьому сьогодні все. Дякую за увагу!
- Numix calculator
- Calculator plus
- Як отримати оцінку продуктивності комп`ютера в windows 10
- Як зробити підтвердження відкриття поштового клієнта на jquery.
- Що таке фільтри в php.
- Як динамічно отримувати коментарі з бази даних.
- Що нового в php7.1: видимість констант.
- Як прописати суму, число, цифри прописом в excel
- Як проводити рефакторинг?
- Сума і числа прописом українською мовою
- Стрілочні функції в es6.
- Об`єкт number в jаvascript
- Новинки в php7. Частина 3.
- Типи змінних в jаvascript
- Тестування php-скриптів через curl
- Ключове слово let в es6.
- Анонімні, або лямбда-функції в php.
- Проста галерея на php
- Довідкові змінні php
- Сокети: клієнт на php
- Захист e-mail на сайті від спамерів