20 функций PHP, которые вы должны знать в 2023 году

Источник: «20 PHP Features You Should Know in 2023»
PHP постоянно развивается, и важно быть в курсе последних функций и улучшений. В этой статье представлены 20 функций PHP, которые вы должны знать в 2023 году, каждая из которых проиллюстрирована удобным примером кода.

1. str_contains():

Проверяет, содержится ли строка в другой строке.

$sentence = "The quick brown 🦊 jumps over the lazy 🐶.";
$word = "🦊";
if (str_contains($sentence, $word)) {
echo "The sentence contains the word 🦊.";
}

2. str_starts_with():

Проверяет, начинается ли строка с заданной подстроки.

$sentence = "🚀 Launching into space!";
if (str_starts_with($sentence, "🚀")) {
echo "The sentence starts with a rocket emoji!";
}

3. str_ends_with():

Проверяет, заканчивается ли строка заданной подстрокой.

$sentence = "It's a beautiful day! ☀️";
if (str_ends_with($sentence, "☀️")) {
echo "The sentence ends with a sun emoji!";
}

4. get_debug_type():

Возвращает тип переменной.

$num = 42;
echo get_debug_type($num); // "integer"

5. get_resource_id():

Возвращает уникальный идентификатор данного ресурса.

$file = fopen('test.txt', 'r');
echo get_resource_id($file); // e.g., "7"

6. fdiv():

Функция деления, включающая поддержку деления на ноль.

$result = fdiv(10, 0); // INF

7. preg_last_error_msg():

Возвращает удобочитаемое сообщение о последней ошибке выполнения регулярного выражения PCRE.

preg_match('/(/', '');
echo preg_last_error_msg(); // "missing )"

8. array_key_first():

Возвращает первый ключ массива.

$array = ['🍏'=>'Apple', '🍊'=>'Orange', '🍇'=>'Grape'];
echo array_key_first($array); // "🍏"

9. array_key_last():

Возвращает последний ключ массива.

$array = ['🍏'=>'Apple', '🍊'=>'Orange', '🍇'=>'Grape'];
echo array_key_last($array); // "🍇"

10. ErrorException::getSeverity():

Возвращает серьёзность ошибки.

try {
trigger_error("Custom error", E_USER_WARNING);
} catch (ErrorException $e) {
echo $e->getSeverity(); // 512
}

11. Функции фильтра:

PHP 8 представил несколько новых функций фильтрации. Вот пример использования filter_var с FILTER_VALIDATE_BOOL:

var_dump(filter_var('yes', FILTER_VALIDATE_BOOL)); // bool(true)

12. WeakMap:

WeakMap — это коллекция (map) или словарь, содержащий ссылки на объекты, что не предотвращает сборку мусора для этих объектов.

$weakmap = new WeakMap();
$obj = new stdClass();
$weakmap[$obj] = 'Hello, world!';

13. Объекты-Значения:

PHP 8 представил Constructor Property Promotion — Определение свойств объекта в конструкторе, новый синтаксис для создания Объектов-Значений.

class Money {
public function __construct(
public int $amount,
public string $currency
) {}
}

$tenDollars = new Money(10, 'USD');

14. Выражение Match:

Оператор подобный switch.

echo match (1) {
0 => '🚫',
1 => '✅',
default => '⁉️',
};

15. Оператор Nullsafe:

Новый оператор ?-> позволяет проверять значение NULL при доступе к свойствам или методам.

class User {
public function getAddress(): ?Address {
// returns Address or null
}
}

$user = new User();
$country = $user?->getAddress()?->country; // no error if getAddress() returns null

16. Именованные аргументы:

Эта функция позволяет передавать значения в функцию, указывая имя значения.

new Money(amount: 10, currency: 'USD');

17. Атрибуты:

Атрибуты, также известные как аннотации в других языках программирования.

#[Attribute]
class ExampleAttribute {}

#[ExampleAttribute]
class ExampleClass {}

18. Определение свойств объекта в конструкторе:

Эта функция позволяет объединить свойства класса и конструктор в одном объявлении.

class Money {
public function __construct(
public int $amount,
public string $currency
) {}
}

19. Объединение типов:

Эта функция позволяет использовать объявление типов, которые могут быть одним из нескольких типов.

function print_id(int|string $id): void {
echo 'ID: ' . $id;
}

20. JIT-Компиляция

PHP 8 представил два механизма JIT-компиляции: Tracing JIT и Function JIT.

Примечание: JIT-компиляция — это не та функция, которую вы можете напрямую продемонстрировать с помощью фрагмента кода, но это важное улучшение в PHP 8, которое может обеспечить значительное повышение производительности.

В заключение, PHP — это постоянно развивающийся язык со множеством интересных новых возможностей и улучшений. Независимо от того, являетесь ли вы опытным PHP разработчиком или новичком, стоит потратить время на знакомство с этими новыми возможностями и их использование в своём коде. Оставайтесь любопытными, продолжайте учиться и удачного кодирования!🚀

Дополнительные материалы

Предыдущая Статья

Mobile-First подход с HTML и CSS

Следующая Статья

Новые возможности и изменения в Laravel Livewire v3