Реліз відбувся 11 червня, фінальна версія планується на листопад 2015 року. Проте вже зараз можна спостерігати зміни, на які слід звернути увагу. Тут відзначені лише деякі з них, з повним списком ви зможете ознайомитися перейшовши по посиланню, які будуть залишені в кінці посту.
- Поліпшення продуктивності. Як стверджують розробники, PHP 7-ї версії став працювати в два рази швидше у порівнянні з версією PHP версії 5.6. Якщо це дійсно так, то ця новина дійсно радує.
- Реалізована підтримка скороченою записи конструкції use:
use Symfony\Component\Console\{
Helper\Table,
Question\ChoiceQuestion as Choice,
Question\ConfirmationQuestion,
}; - Хороша ідея, зробити запис коротше при роботі з тернарными операторами, для простих перевірок змінних, і присвоєння їм значень за замовчуванням. І ось з’являється оператор “??” (Null coalescing operator). Тепер перевірити наявність змінної і повернути її значення або значення за замовчуванням можна за допомогою запису:
$action = $_POST[‘action’] ?? ‘index’;Це теж саме, що і ця запис:
$action = isset($_POST[‘action’]) ? $_POST[‘action’] : ‘index’;
- Додана підтримка рядків довжиною >= 2^31 байт для 64-бітних версій.
- З’явився метод Closeure::call(object $to[, mixed $parametrs]), дозволяє викликати анонімну функцію з довільним $this.
- З’явився синтаксис \u{xxxxxx} для рядків, який дозволяє робити записи довільних Unicode-символів у рядках.
- Тепер констант оприлюднені через define() так само можна задавати масиви, ця можливість дуже до речі.
- З’явився новий оператор порівняння, записується так , раніше відомий як «spaceship operator». Умова $a $b може повернути -1, 0 або 1 у разі якщо значення змінної $a менше, дорівнює або більше значення змінної $b відповідно.
- З’явилася можливість використання зарезервованих ключових слів в якості імен методів:
$object::new(‘foo’, ‘bar’)->forEach(function($index, $item) {}); - Запис конструктора класу в стилі PHP 4, відтепер буде вважатися застарілою. Для пояснення це коли метод-конструктор класу називався так само, як і сам клас.
- Звернення до не статичним методам, за допомогою статичних викликів (::) так само вважаються застарілими.
- З’явилася константа PHP_INT_MIN
- Виключена INI директива «asp_tags», у разі спроби її включення відтепер буде виникати фатальна помилка. Відповідно видалена підтримка тегів звичних для ASP (<%).
- Виключена INI директива «always_populate_raw_post_data», змінна $HTTP_RAW_POST_DATA тепер не буде доступна, а замість неї слід використовувати дескриптор вхідного потоку php://input.
- Ітерація по масиву за допомогою циклу foreach відтепер не зрушує внутрішній покажчик масиву, який можна отримувати і змінювати такими функціями як current(), next(), reset() і аналогічних функцій. Цикл foreach тепер буде працювати з копією масиву.
- Побітовий зсув допомогою оператора зсуву (<<) на кількість біт, в разі якщо буде перевищувати кількість біт в integer тепер буде повертати в якості результату 0. Варто відзначити, що раніше значення результату залежало від архитектцуры процесора. За аналогією, правий зсув буде повертати 0 або -1 залежно від вихідного знака числа (старший біт відповідає за знак, не впливає).
- Тепер рядки, які містять шістнадцяткові числа завжди будуть оброблятися як рядки, а не сприйматися як числа. Приміром, раніше умова is_numeric(«0xFF») повертало true, тепер аналогічні перевірки будуть повертати false.
- Виключена підтримка модифікатора /e у PCRE, за допомогою функції preg_replace_callback() може бути реалізована аналогічна функціональність.
- Як відомо, раніше контроль типів був можливий тільки для класів, інтерфейсів, масивів, і типу callable, тепер же додана підтримка type-hint-ів для скалярних типів.
- Виключені застарілі і не підтримувані SAPI і розширення.
Посилання на докладну інформацію: php.net, github.com
Додав: htmaker, 25.06.2015 р.
Діліться з друзями:
См. також:
Пісочниця для PHP
Рубрика: PHP, Інструменти
Конфіг файли
Рубрика: PHP
Установка XCache в Linux CentOS
Рубрика: Linux, PHP
Використання SOAP в PHP
Рубрика: PHP
Встановлення PHP Soap на CentOS
Рубрика: Linux, PHP
Обсяг даних в зручному форматі на PHP
Рубрика: PHP
Транслітерація символів на PHP
Рубрика: PHP
Як перетворити URL-рядок в масив?
Рубрика: PHP
Добірка шаблонів регулярних виразів
Рубрика: PHP