Що нового в 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 на сайті від спамерів
Тестування php-скриптів через curl
Що таке фільтри в php.
Захист e-mail на сайті від спамерів
Як динамічно отримувати коментарі з бази даних.
Як прописати суму, число, цифри прописом в excel
Ключове слово let в es6.
Рекурсія в php
Як зробити підтвердження відкриття поштового клієнта на jquery.
Довідкові змінні php