Новые функции в 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. Затем, на второй итерации, он снова делает всё то же самое, но начинает уже не с первого элемента, а со второго, а дальше по аналогии.
Надеюсь, что вы узнали что-то новое для себя и всё поняли, но если у вас возникают трудности с пониманием данной статьи, то советую приобрести курс PHP и MySQL с нуля до гуру, где вы не только узнаете основы php, но и закрепите знания на практике.
Пишите в комментариях про что вы хотите узнать, и я постараюсь написать статью на эту тему.
-
- Михаил Русаков
Комментарии (4):
Поелезная статья,
Ответить
Здравствуйте, Михаил Русаков, а где можно узнать всё о версии PHP 5.5?
Ответить
Здравствуйте, Евгений. Узнать всё о PHP Вы можете на официальном сайте php.net
Ответить
Мне показалось, что в последнее время очень увеличилось содержимое каждой статьи. Статьи стали больше напоминать сборник полезных советов. Пока дочитал до конца, забыл про что было в начале. Возможно я не прав, но лучше сделать несколько статей коротеньких, чем всё в кучу спихивать. Лучше какой-нибудь пример по теме привести поподробнее в конце статьи. Извиняюсь что не в тему написал.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.