Интересные моменты PHP 5.4 :: Сравнение нововведений с версией 5.2.17

Пару дней назад решил перейти с версии php 5.2.17 на php 5.4.0. Главным образом мне было интересно начать пользоваться пространствами имен. Но помимо пространства имен там еще есть много интересных примочек которые раньше приходилось писать самому а сейчас это уже всё есть.

Итак начнём.

Пространство имён:

Что это такое ? Представим разные файлы. В каждом файле мы определяем какую то функцию, классы, константы. Когда таких файлов много, нам становится тяжелее  подбирать имена для них. Мы прибегаем к разным уловкам, таким как называем функции с префиксами,разделяем с помощью символа «_» . А как часто у вас было что какие то переменные переопределяются в ходе работы программы ?



Пространство имен позволяет нам разграничить рабочие области в файлах.
Итак, определяется пространство ключевым словом namespace
К примеру:
namespace APPLICATION;
Если раньше используя метод класса мы писали $obj->method, то теперь с учётом пространства имен это будет выглядеть следующим образом:

$obj = new APPLICATION\OurObjec;

$obj->ourmethod();
где APPLICATION наше пространство имен, а OurObject класс объявленный в пространстве имен APPLICATION.

Так же если мы напишем строчку use APPLICATION\OurObject as OurObject, то мы сможем обратиться к нашему классу как раньше. Т.е

$OurObject = new OurObject;
$OurObject->ourmethod();

Массивы

Раньше мы могли использовать массивы написав ключевое слово array() либо$array[],$array[$key].

В новой же версии php 5.4 мы можем проще обращаться с массивами :

$array = [1, 2, 3, 4]; или $array = [‘one’ => 1, ‘two’ => 2, ‘three’ => 3, ‘four’ => 4];

Обратите внимание нет необходимости использовать ключевое слово array

Функции

На мой взгляд ну очень полезная возможность это обращаться к функции как к массиву.

Например

<pre><code>function ourFunction() {
return array('one', 'two', 'three');
}

ourFunction()['1'];

Возвратит ‘one’.
Данная фича достаточно полезна при выводе строки из базы данных например.
Раньше чтобы получить значение какого либо элемента массива возвращаемого функцией нам необходимо было
приравнять ее к переменной. Теперь можно напрямую обращаться.

Родная поддержка Unicode

Теперь все строковые функции поддерживают unicode символы.

Продолжение следует…

Добавить комментарий