Advertisement
  1. Code
  2. PHP

PHP 5.6: Що нового

Scroll to top
Read Time: 5 min

Ukrainian (українська мова) translation by Anton Bagaiev (you can also view the original English article)

Ми довго чекали, але, нарешті, отримали нову версію PHP. Нам пропонують цікаві нові властивості і покращення, а частина застарілого функціоналу була видалена чи відповідно позначена як застаріла.

Тож давайте зануримось у подробиці і подивимось, що цікавого нам пропонує нова версія.

Несумісні зміни

В цій частині я розкажу про несумісні зміни; проте, більша частина вашого коду на PHP 5 буде працювати на PHP 5.6 без жодних модифікацій.

json_decode

За специфікацією JSON, тепер json_decode() буде відкидати всі варіанти літералів(як от true, false та null), що вказані не у нижньому регістрі. Що, також, відповідно вплине на json_last_error().

Використання GMP

Якщо ви не знаєте, що таке GNU Multiple Precision (GMP) та як працювати з ним у PHP, тоді я рекомендую вам ознайомитись з відповідною статтєю на PHP.net. У PHP 5.6 ресурси GMP є об'єктами. Вам не треба робити зміни у вашому коді, окрім одного випадку - якщо ви використовуєте функцію is_resource().

Mcrypt

Всі функції Mcrypt, що вимагають вказання параметрів key та IV, не будуть приймати ці параметри, якщо вони мають некоректний розмір. Це функції mcrypt_encrypt(), mcrypt_decrypt()mcrypt_cbc()mcrypt_cfb(), mcrypt_ecb()mcrypt_generic(), та mcrypt_ofb().

Елемени масивів: значення і перезаписування

У попередніх версіях, під час оголошення масиву як властивості класу з явними і неявними ключами, значення масиву перезаписувалось, якщо явний ключ співпадав з відповідним неявним.

Нові властивості у PHP 5.6

Постійні скалярні вирази

З релізом PHP 5.6 стало можливим використовувати скалярний вираз, що включає у себе одночасно числові та рядкові літерали. У минулих версіях інтерпретатор PHP очікував статичний вираз для значення констант, аргументів функцій за замовчуванням та подібних конструкціях.

Варіаційні ряди аргументів з оператором "..."

Раніше ми використовували func_get_args() для отримання аргументів, що були використані під час виклику функцій, але з PHP 5.6 цю конструкцію можна легко замінити простим оператором ... .

Розпакування аргументів

Ми можемо використати той самий оператор(...), щоб розпакувати будь-який аргумент, що може бути масивом чи набором обхідних(traversable) об'єктів.

Скорочення **

Оператор ** був доданий для зведення в ступінь. Тепер зводити в ступінь простіше за допомогою нового скороченого оператора.

Майте на увазі, що послідовність дій також грає свою роль у використанні цього оператору. Щоб правильно це зрозуміти, подивіться на приклад:

Ви можете очікувати, що результат буде 256, тому що групування має виглядати як (2 ** 2) ** 4, але це не так. Правильна відповідь це 65 536, тому що групування відбувається зправа наліво, і цей вираз буде інтерпретований як 2 ** (2 ** 4).

phpdbg

У PHP 5.6 було додано інтерактивний відладчик під назвою phpdbg. Ви можете знайти офіційну документацію з phpdbg за цим посиланням.

Відладчик phpdbg реалізований, як модуль SAPI.

__debugInfo()

Новий магічний метод, що додано у PHP 5.6, дозволяє змінити властивості і значення об'єкта для виводу за допомогою var_dump().

Кодування символів за замовчуванням

Кодування символів за замовчуванням для функцій htmlentities(), html_entity_decode() та htmlspecialchars() тепер може бути вказане за допомогою default_charset().

Завантаження великих файлів

Тепер можливо завантажити файли, що більші за 2 Gb.

php://input тепер придатний до повторного використання

php://input може бути використаним стільки разів, скільки ви хочете прочитати дані. Ця функція пропонує більшу економію використаної пам'яті в порівнянні з читанням даних з POST.

Оператор use для функцій і констант

Оператор use був запропонований для підтримки розширення констант і функцій. Це можна зробити за допомогою використання функцій const і use відповідно. Раніше цей оператор можна було застосувати лише для класів.

Застарілі властивості(deprecated)

Виклик з несумісного оточення

Якщо ви спробуєте викликати нестатичний метод як статичний, або у оточенні об'єкту, це призведе до виводу помилки E_DEPRECATED.

$HTTP_RAW_POST_DATA

$HTTP_RAW_POST_DATA тепер вважається застарілим і позначений як deprecated. Замість нього тепер необхідно використовувати php://input.

Властивості кодування символів

Із додаванням default_charset() відповідні параметри вважаються застарілими для iconv та mbstring.

Список змінених функцій

Список всіх змінених функцій у PHP 5.6 ви можете знайти в останньому мануалі PHP.

Список нових функцій

Список всіх нових функцій у PHP 5.6 ви можете знайти у цьому розділі мануалу PHP.

Отже

Поки команда розробників PHP працює над наступною версією PHP, я можу сказати, що PHP 5.6 був випущений з великою кількістью покращень і нових властивостей, які дозволяють легко оновитись з минулих версій.

Не забудьте повідомити про будь-які питання або коментарі, які ви можете задати у коментарях під статтєю.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.