Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. PHP
Code

PHP 5.6: Що нового

by
Length:ShortLanguages:

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
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.