В этом материале я расскажу про некоторые полезные функции, которые появились в PHP 5.5 .

Новые функции в PHP 5.5.

В этом материале я расскажу про некоторые полезные функции, которые появились в PHP 5.5.

Для начала разберём, как можно выбрать любой символ в строке

$str = "mystring"[3];
echo $str;

Мы получим символ t. Т.е., теперь мы можем работать со строками, как с массивами.

Раз упомянули массивы, давайте посмотрим и на них. Для начала следует сказать, что теперь массив можно создать просто с помощью [], как в языке JavaScript, а не писать array(). Обращаться же к элементам массива можно точно так же, как и к строкам.

$arr = ['el1', 'el2', 'el3'][1];
echo $arr;

Чтобы получить элемент, теперь достаточно просто указать его порядковый номер, начиная с нуля, сразу после массива в квадратных скобках.

Как сделать, чтобы выбирался случайный элемент массива? Можно так:

$arr = ['el1', 'el2', 'el3'];
$el = $arr[array_rand(0,2)];
echo $el;

Но этот способ уже старый. Теперь же мы можем указать функцию rand() прямо в квадратных скобках.

$arr = ['el1', 'el2', 'el3'][rand(0,2)];

Таким образом будет и код лучше и производительность выше.

Теперь поговорим про блок finally в конструкции try catch.

try {

} catch($e) {

} finally {

}

Данный блок finally вы могли видеть в других языках, теперь он появился и в языке PHP.

Суть его заключается в том, что всё, что мы напишем в нём, выполнится в любом случае, независимо от того, случилось у нас исключение или нет. Посмотрим на примере.

function div($n) {
  if(!$n) {
   throw new Exception("Деление на ноль");
  }
  return 1/$n;
}

try {
  div(3);
  div(0);
} catch($e) {
  echo "Ошибка: " + $e->getMessage();
} finally {
  echo "Работа скрипта завершена";
}

У нас есть функция, которая выполняет деление, и выбрасывает исключение, если мы пытаемся делить на 0. В первом случае у нас всё сработает, во втором же мы получим исключение, но несмотря на это, мы всё равно увидим надпись "Работа скрипта завершена" в обоих случаях. Это очень удобно. Как пример, работа с базой данных. Вы в начале подключаетесь к ней, а в блоке finally отключаетесь, несмотря на то, сработал ваш скрипт или нет.

И напоследок разберём, что такое генераторы.

Генератор - функция, возвращающая множество значений "на лету". Обычно используется вместе с foreach(). Только, если в обычных функциях используется ключевое слово return, чтобы вернуть значение, то в генераторах используется ключевое слово yield.

function generator() {
  yield "Элемент 1";
  yield "Элемент 2";
  yield "Элемент 3";
}

foreach(generator() as $s) {
  var_dump($s);
}

В результате мы получим все наши строки. Как же работает наш генератор? В теле цикла foreach на первой итерации интерпретатор php заходит внутрь функции generator(), видит там ключевое слово yield и возвращает значение "Элемент 1", которое записывается в $s. Затем, на второй итерации, он снова делает всё то же самое, но начинает уже не с первого элемента, а со второго, а дальше по аналогии.

Пишите в комментариях про что вы хотите узнать, и я постараюсь написать статью на эту тему.