Internal (built-in) functions

Оновлено: 11.05.2023

PHP постачається зі стандартним набором функцій і конструкцій. Існують також функції, які вимагають компіляції певних розширень PHP, інакше з'являться фатальні помилки "невизначена функція". Наприклад, для використання функцій обробки зображень, таких як imagecreatetruecolor(), PHP має бути скомпільовано з підтримкою GD. Або, щоб використовувати mysqli_connect(), PHP має бути скомпільовано з підтримкою MySQLi. Існує багато основних функцій, які включені в кожну версію PHP, наприклад, функції роботи з рядками і змінними. Виклик phpinfo() або get_loaded_extensions() покаже, які розширення завантажено в PHP. Також зауважте, що багато розширень увімкнено за замовчуванням і що посібник з PHP розділено за розширеннями. Про те, як налаштувати PHP, див. розділи про конфігурацію, встановлення та окремі розширення.

Про те, як читати і розуміти прототип функції, розповідається в розділі посібника під назвою "Як читати опис функції". Важливо розуміти, що повертає функція, або чи працює функція безпосередньо з переданим значенням. Наприклад, str_replace() поверне змінений рядок, тоді як usort() працює з власне переданою змінною. Кожна сторінка посібника також містить специфічну інформацію для кожної функції, як-от параметри функції, зміни поведінки, значення, що повертаються у разі успіху або невдачі, а також інформацію про доступність. Знання цих важливих (але часто малопомітних) відмінностей має вирішальне значення для написання правильного PHP-коду.

Примітка: Якщо параметри, передані функції, не є тими, які вона очікує, наприклад, передача масиву замість рядка, значення, що повертається функцією, буде невизначеним. У цьому випадку функція, швидше за все, поверне нуль, але це лише умовність, і на неї не можна покладатися. Починаючи з версії PHP 8.0.0, у цьому випадку має генеруватися виключення TypeError.

Примітка: Якщо параметри, передані функції, не є тими, які вона очікує, наприклад, передача масиву замість рядка, значення, що повертається функцією, буде невизначеним. У цьому випадку функція, швидше за все, поверне нуль, але це лише умовність, і на неї не можна покладатися. Починаючи з версії PHP 8.0.0, у цьому випадку має генеруватися виключення TypeError.

Зауважте:

Скалярні типи для вбудованих функцій за замовчуванням є примусово нульовими у примусовому режимі. Починаючи з версії PHP 8.1.0, передача null у внутрішній параметр функції, який не оголошено nullable, не рекомендується і видає повідомлення про застарілість у примусовому режимі для узгодження з поведінкою користувацьких функцій, де скалярні типи потрібно явно позначати як nullable.

Наприклад, функція strlen() очікує, що параметр $string буде рядком, що не містить нуля. З історичних причин PHP дозволяє передавати null для цього параметра в примусовому режимі, і параметр неявно приводиться до рядка, що призводить до значення "". На противагу цьому, у строгому режимі генерується помилка типу TypeError.

<?php
var_dump(strlen(null));
// "Deprecated: Passing null to parameter #1 ($string) of type string is deprecated" as of PHP 8.1.0
// int(0)

var_dump(str_contains("foobar", null));
// "Deprecated: Passing null to parameter #2 ($needle) of type string is deprecated" as of PHP 8.1.0
// bool(true)
?>