100 найкращих запитань і відповідей на інтерв’ю на PHP (PDF)
Питання для співбесіди по PHP для першокурсників
1) Що таке PHP?
PHP — це веб-мова, заснована на сценаріях, які дозволяють розробникам динамічно створювати згенеровані веб-сторінки.
2) Що означають ініціали PHP?
PHP означає Hypertext Pre-processor.
👉 Безкоштовне завантаження у форматі PDF: запитання та відповіді на інтерв’ю на PHP
3) Яку мову програмування нагадує PHP?
Синтаксис PHP нагадує Perl і C
4) Що означає PEAR?
PEAR означає «сховище розширень і програм PHP». Він розширює PHP і забезпечує вищий рівень програмування для веб-розробників.
5) Яка версія PHP фактично використовується?
Рекомендованою версією PHP є версія 7.1 або 7.2.
6) Як виконати сценарій PHP із командного рядка?
Просто скористайтеся інтерфейсом командного рядка PHP (CLI) і вкажіть ім’я файлу сценарію, який потрібно виконати, як показано нижче:
php script.php
7) Як запустити інтерактивну оболонку PHP з інтерфейсу командного рядка?
Просто використовуйте програму PHP CLI з опцією -a наступним чином:
php -a
8) Який правильний і найбільш поширений спосіб почати та завершити блок коду PHP?
Два найпоширеніші способи запуску та завершення сценарію PHP:
<?php [ --- PHP code---- ] ?> and <? [--- PHP code ---] ?>
9) Як ми можемо відобразити результат безпосередньо в браузері?
Щоб мати можливість відображати вихідні дані безпосередньо в браузері, ми повинні використовувати спеціальні теги .
10) У чому головна відмінність між PHP 4 і PHP 5?
PHP 5 представляє багато додаткових ООП (Об'єктно-орієнтоване програмування) особливості.
11) Чи підтримується множинне успадкування в PHP?
PHP підтримує лише одиночне успадкування; це означає, що клас можна розширити лише з одного класу за допомогою ключового слова "розширений".
12) Що означає кінцевий клас і кінцевий метод?
'final' представлено в PHP5. Фінальний клас означає, що цей клас не може бути розширений і остаточний метод не може бути перевизначений.
13) Як у PHP виконується порівняння об’єктів?
Ми використовуємо оператор «==», щоб перевірити, чи є два об’єкти екземплярами одного класу та мають однакові атрибути та однакові значення. Ми можемо перевірити, чи два об’єкти посилаються на один екземпляр одного класу, використовуючи оператор ідентифікації «===».
14) Як можуть взаємодіяти PHP і HTML?
Можна генерувати HTML за допомогою сценаріїв PHP, а також можна передавати фрагменти інформації з HTML у PHP.
15) Який тип операції необхідний під час передачі значень через форму чи URL?
Якщо ми хочемо передати значення через форму або URL-адресу, нам потрібно закодувати та декодувати їх за допомогою htmlspecialchars() і urlencode().
16) Як PHP і Javascript взаємодіяти?
PHP і Javascript не може безпосередньо взаємодіяти, оскільки PHP є серверною мовою Javascript це мова на стороні клієнта. Однак ми можемо обмінюватися змінними, оскільки PHP може генерувати Javascript код, який буде виконуватися браузером, і можна передати певні змінні назад до PHP через URL-адресу.
17) Що потрібно, щоб мати можливість використовувати функцію зображення?
Бібліотека GD потрібна для виконання функцій зображення.
18) Яке використання функції 'imagetypes()'?
imagetypes()
надає формат і типи зображень, які підтримуються поточною версією GD-PHP.
19) Які функції слід використовувати для отримання властивостей зображення (розмір, ширина та висота)?
Команда функції є getimagesize()
за розміром, imagesx()
для ширини і imagesy()
для висоти.
20) Як обробляються збої у виконанні за допомогою функцій include() і require()?
Якщо функція require()
не може отримати доступ до файлу, тоді він закінчується фатальною помилкою. Однак, include()
функція видає попередження, а сценарій PHP продовжує виконуватися.
21) Яка головна відмінність між require() і require_once()?
require()
та require_once()
виконати те саме завдання, за винятком того, що друга функція перевіряє, чи PHP-скрипт уже включено перед його виконанням.
(те саме для include_once() і include())
22) Як я можу відобразити текст за допомогою сценарію PHP?
Можливі два методи:
<!--?php echo "Method 1"; print "Method 2"; ?-->
23) Як ми можемо відобразити інформацію про змінну, яку може прочитати людина за допомогою PHP?
Щоб мати можливість відобразити зрозумілий людині результат, ми використовуємо print_r()
.
24) Як можна встановити нескінченний час виконання для скрипту PHP?
Функція set_time_limit(0), додана на початку сценарію, встановлює нескінченний час виконання, щоб уникнути помилки PHP «перевищено максимальний час виконання». Це також можна вказати у файлі php.ini.
Запитання та відповіді на співбесіді для досвідчених
25) Що означає помилка PHP «Помилка аналізу в PHP – неочікувана T_variable у рядку x»?
Це синтаксична помилка PHP, яка вказує на те, що помилка в рядку x зупиняє розбір і виконання програми.
26) Що ми повинні зробити, щоб мати можливість експортувати дані у файл Excel?
Найбільш поширеним і використовуваним способом є отримання даних у форматі, який підтримує Excel. Наприклад, можна написати файл .csv, вибрати, наприклад, кому як роздільник між полями, а потім відкрити файл за допомогою Excel.
27) Для чого корисна функція file_get_contents()?
file_get_contents()
дозволяє читати файл і зберігати його в рядковій змінній.
28) Як ми можемо підключитися до a MySQL бази даних із сценарію PHP?
Щоб мати можливість підключитися до a MySQL бази даних, ми повинні використовувати функцію mysqli_connect() наступним чином:
<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->
29) Для чого корисна функція mysql_pconnect()?
mysql_pconnect()
забезпечити постійне з’єднання з базою даних, це означає, що з’єднання не закривається після завершення сценарію PHP.
Ця функція не підтримується в PHP 7.0 і вище
30) Як набір результатів Mysql обробляється в PHP?
Набір результатів можна обробляти за допомогою mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object або mysqli_fetch_row.
31) Як можна дізнатися кількість рядків, повернутих у наборі результатів?
Функція mysqli_num_rows()
повертає кількість рядків у наборі результатів.
32) Яка функція дає нам кількість записів, на які впливає запит?
mysqli_affected_rows()
повертає кількість записів, на які впливає SQL-запит.
33) Яка різниця між mysqli_fetch_object() і mysqli_fetch_array()?
Команда mysqli_fetch_object()
функція збирає перший єдиний відповідний запис, де mysqli_fetch_array()
збирає всі відповідні записи з таблиці в масив.
34) Як ми можемо отримати доступ до даних, надісланих через URL за допомогою методу GET?
Щоб отримати доступ до даних, надісланих через метод GET, ми використовуємо масив $_GET таким чином:
www.url.com?var=value $variable = $_GET["var"]; this will now contain 'value'
35) Як ми можемо отримати доступ до даних, надісланих через URL за допомогою методу POST?
Щоб отримати доступ до даних, надісланих таким чином, ви використовуєте масив $_POST.
Уявіть, що у вас є поле форми під назвою «var», коли користувач натискає «Надіслати» у форму публікації, тоді ви можете отримати доступ до значення таким чином:
$_POST["var"];
36) Як ми можемо перевірити, що значення заданої змінної є числом?
Можна використати спеціальну функцію is_numeric(), щоб перевірити, чи є це числом чи ні.
37) Як ми можемо перевірити, що значення даної змінної є буквено-цифровим?
Можна використати спеціальну функцію ctype_alnum, щоб перевірити, чи є це буквено-цифрове значення чи ні.
38) Як перевірити, чи задана змінна порожня?
Якщо ми хочемо перевірити, чи має змінна значення чи ні, можна використати функцію empty().
39) Що означає функція unlink()?
Функція unlink() призначена для обробки файлової системи. Він просто видаляє файл, наданий як запис.
40) Що означає функція unset()?
Функція unset() призначена для керування змінними. Це зробить змінну невизначеною.
41) Як мені уникнути даних перед збереженням їх у базі даних?
Функція addslashes дозволяє екранувати дані перед збереженням у базі даних.
42) Як можна видалити екрануючі символи з рядка?
Функція stripslashes дає нам змогу видалити символи екранування перед апострофами в a рядок.
43) Як ми можемо автоматично уникнути вхідних даних?
Ми повинні ввімкнути запис Magic quotes у файлі конфігурації PHP.
44) Що означає функція get_magic_quotes_gpc()?
Функція get_magic_quotes_gpc() повідомляє нам, чи ввімкнено магічні лапки чи ні.
45) Чи можна видалити теги HTML з даних?
Функція strip_tags() дозволяє очистити рядок від тегів HTML.
46) для чого корисна статична змінна у функції?
Статична змінна визначається у функції лише вперше, і її значення можна змінити під час викликів функції наступним чином:
<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction(); //1 testFunction(); //2 testFunction(); //3 ?-->
47) Як ми можемо визначити змінну, доступну у функціях сценарію PHP?
Ця функція можлива за допомогою ключового слова global.
48) Як можна повернути значення з функції?
Функція повертає значення за допомогою інструкції 'return $value;'.
49) Який найзручніший метод хешування для хешування паролів?
Бажано використовувати crypt(), який нативно підтримує кілька алгоритмів хешування, або функцію hash(), яка підтримує більше варіантів, ніж crypt(), а не використовувати звичайні алгоритми хешування, такі як md5, sha1 або sha256, оскільки вони задумані як швидкі. Отже, хешування паролів за допомогою цих алгоритмів може створити вразливість.
50) Яке криптографічне розширення забезпечує створення та перевірку цифрових підписів?
PHP-OpenSSL Розширення забезпечує кілька криптографічних операцій, включаючи створення та перевірку цифрових підписів.
Питання для співбесіди з PHP для 5-річного досвіду
51) Як визначається константа в сценарії PHP?
Директива define() дозволяє визначити константу наступним чином:
define ("ACONSTANT", 123);
52) Як можна передати змінну за посиланням?
Щоб мати можливість передати змінну за посиланням, ми використовуємо амперсанд перед нею, як показано нижче $var1 = &$var2
53) Чи працюватиме порівняння цілого числа 12 і рядка «13» у PHP?
«13» і 12 можна порівняти в PHP, оскільки він приводить все до цілого типу.
54) Як можна перетворювати типи в PHP?
Ім’я типу виводу має бути вказано в круглих дужках перед змінною, яка має бути приведена таким чином:
* (int), (integer) – привести до цілого числа
* (bool), (boolean) – привести до логічного
* (float), (double), (real) – приведення до float
* (рядок) – приведення до рядка
* (масив) – приведення до масиву
* (об'єкт) – приведення до об'єкта
55) Коли умовний оператор закінчується endif?
Коли за оригінальним if слідує: а потім блок коду без дужок.
56) Як у PHP використовується тернарний умовний оператор?
Він складається з трьох виразів: умови та двох операндів, що описують, яку інструкцію слід виконати, коли задана умова є істинною чи хибною, як показано нижче:
Expression_1?Expression_2 : Expression_3;
57) Для чого використовується функція func_num_args()?
Функція func_num_args() використовується для визначення кількості параметрів, які передаються у функцію.
58) Якщо змінна $var1 має значення 10, а $var2 — символ var1, яке значення має $$var2?
$$var2 містить значення 10.
59) Що означає доступ до класу через ::?
:: використовується для доступу до статичних методів, які не вимагають ініціалізації об'єкта.
60) У PHP об’єкти передаються за значенням чи за посиланням?
У PHP об’єкти передаються за посиланням.
61) Чи викликаються батьківські конструктори неявно всередині конструктора класу?
Ні, батьківський конструктор потрібно викликати явно таким чином:
parent::constructor($value)
62) Яка різниця між __sleep і __wakeup?
__sleep повертає масив усіх змінних, які потрібно зберегти, тоді як __wakeup повертає їх.
63) Що швидше?
1- Поєднання двох змінних наступним чином:
$variable1 = 'Hello '; $variable2 = 'World'; $variable3 = $variable1.$variable2;
Or
2- $variable3 = "$variable1$variable2";
$variable3 міститиме «Hello World». Перший код швидший за другий, особливо для великих наборів даних.
64) що таке визначення сесії?
Сеанс — це логічний об’єкт, який дозволяє нам зберігати тимчасові дані на кількох сторінках PHP.
65) Як ініціювати сеанс у PHP?
Використання функції session_start() дозволяє активувати сеанс.
66) Як можна поширити ідентифікатор сеансу?
Ви можете поширювати ідентифікатор сеансу за допомогою файлів cookie або параметрів URL-адреси.
67) Що означає постійний файл cookie?
Постійний файл cookie постійно зберігається у файлі cookie на комп’ютері браузера. За замовчуванням файли cookie є тимчасовими та видаляються, якщо ми закриваємо браузер.
68) Коли закінчуються сесії?
Сеанси автоматично завершуються, коли скрипт PHP завершує виконання, але їх можна завершити вручну за допомогою session_write_close().
69) Яка різниця між session_unregister() і session_unset()?
Функція session_unregister() скасовує реєстрацію глобальної змінної з поточного сеансу, а функція session_unset() звільняє всі змінні сеансу.
70) Що означає $GLOBALS?
$GLOBALS — це асоціативний масив, що включає посилання на всі змінні, які наразі визначені в глобальній області видимості сценарію.
Питання для співбесіди з PHP для 10-річного досвіду
71) Що означає $_SERVER?
$_SERVER — це масив інформації, створеної веб-сервером, як-от шляхи, заголовки та розташування сценаріїв.
72) Що означає $_FILES?
$_FILES — це асоціативний масив, що складається з елементів, надісланих у поточний сценарій за допомогою методу HTTP POST.
73) Яка різниця між $_FILES['userfile']['name'] і $_FILES['userfile']['tmp_name']?
$_FILES['userfile']['name'] представляє оригінальну назву файлу на клієнтській машині,
$_FILES['userfile']['tmp_name'] представляє тимчасове ім'я файлу, що зберігається на сервері.
74) Як ми можемо отримати повідомлення про помилку, коли виникає проблема із завантаженням файлу?
$_FILES['userfile']['error'] містить код помилки, пов’язаний із завантаженим файлом.
75) Як ми можемо змінити максимальний розмір файлів для завантаження?
Ми можемо змінити максимальний розмір файлів для завантаження, змінивши upload_max_filesize у php.ini.
76) Що означає $_ENV?
$_ENV — це асоціативний масив змінних, надісланий до поточного сценарію PHP за допомогою методу середовища.
77) Що означає $_COOKIE?
$_COOKIE — це асоціативний масив змінних, які надсилаються до поточного сценарію PHP за допомогою файлів cookie HTTP.
78) Що означає область змінних?
Область дії змінної — це контекст, у якому вона визначена. Здебільшого всі змінні PHP мають лише одну область. Ця єдина область охоплює також включені та необхідні файли.
79) яка різниця між оператором «ПОБІТНЕ І» та оператором «ЛОГІЧНЕ І»?
$a і $b: ІСТИНА, якщо і $a, і $b є ІСТИНОЮ.
$a & $b: Біти, які встановлені в $a і $b, встановлені.
80) Які два основні рядкові оператори?
Перший — це оператор конкатенації ('.'), який повертає конкатенацію правого та лівого аргументів. Другий — ('.='), який додає аргумент праворуч до аргументу ліворуч.
81) Що означає оператор масиву '==='?
$a === $b ІСТИНА, якщо $a і $b мають однакові пари ключ/значення в тому самому порядку та однакового типу.
82) Яка різниця між $a != $b і $a !== $b?
!= означає нерівність (ІСТИНА, якщо $a не дорівнює $b), а !== означає неідентичність (ІСТИНА, якщо $a не тотожне $b).
83) Як ми можемо визначити, чи є змінна PHP екземпляром об’єкта певного класу?
Щоб мати можливість перевірити, чи є змінна PHP екземпляром об’єкта певного класу, ми використовуємо instanceof.
84) Для чого корисний оператор goto?
Інструкцію goto можна розмістити, щоб увімкнути переходи всередину програми PHP. Ціль вказується міткою, за якою йде двокрапка, а інструкція вказується як оператор goto, за яким слідує бажана цільова мітка.
85) яка різниця між Exception::getMessage і Exception::getLine?
Exception::getMessage дає нам змогу отримати повідомлення про виняток, а Exception::getLine дає нам змогу отримати рядок, у якому сталася виняток.
86) Що означає вираз Exception::__toString?
Exception::__toString надає рядкове представлення винятку.
87) Як можна проаналізувати файл конфігурації?
Функція parse_ini_file() дозволяє завантажувати ini-файл, указаний у filename, і повертає налаштування в ньому в асоціативному масиві.
88) Як ми можемо визначити, чи встановлена змінна?
Логічна функція isset визначає, чи встановлена змінна та не дорівнює NULL.
89) Яка різниця між функціями strstr() і stristr()?
Рядкова функція strstr(string allString, string occ) повертає частину allString від першого входження occ до кінця allString. Ця функція чутлива до регістру. stristr() ідентичний strstr(), за винятком того, що він нечутливий до регістру.
90) яка різниця між for і foreach?
для виражається таким чином:
для (вираз1; вираз2; вираз3)
заяву
Перший вираз виконується один раз на початку. У кожній ітерації обчислюється вираз2. Якщо воно TRUE, цикл продовжується, а оператори всередині for виконуються. Якщо воно має значення FALSE, виконання циклу завершується. expr3 перевіряється в кінці кожної ітерації.
Однак foreach забезпечує простий спосіб перебору масивів, і він використовується лише з масивами та об’єктами.
91) Чи можна подати форму за допомогою спеціальної кнопки?
Можливе використання document.form.submit()
функція надсилання форми. Наприклад: <input type=button value="SUBMIT" onClick="document.form.submit()">
92) Яка різниця між ereg_replace() і eregi_replace()?
Функція eregi_replace() ідентична функції ereg_replace(), за винятком того, що вона ігнорує регістр під час зіставлення літер.
93) Чи можна захистити спеціальні символи в рядку запиту?
Так, ми використовуємо функцію urlencode(), щоб мати можливість захистити спеціальні символи.
94) Які три класи помилок можуть виникати в PHP?
Три основні класи помилок: повідомлення (некритичні), попередження (серйозні помилки) і фатальні помилки (критичні помилки).
95) Яка різниця між символами \034 і \x34?
\034 — це вісімкове число 34, а \x34 — це шістнадцяткове число 34.
96) Як ми можемо передати змінну через навігацію між сторінками?
Можна передавати змінні між сторінками PHP за допомогою сеансів, файлів cookie або прихованих полів форми.
97) Чи можна подовжити час виконання скрипту PHP?
Використання set_time_limit(int seconds) дозволяє збільшити час виконання сценарію PHP. Обмеження за замовчуванням становить 30 секунд.
98) Чи можна знищити cookie?
Так, це можливо, встановивши файл cookie з минулим часом закінчення.
99) Який час сеансу за замовчуванням у PHP?
Час сеансу за замовчуванням у php - до закриття браузера
100) Чи можна використовувати компонент COM у PHP?
Так, можливо інтегрувати (розподілені) компоненти об’єктної моделі компонентів ((D)COM) у сценарії PHP, які надаються як основа.
101) Поясніть, чи можна спільно використовувати один екземпляр Memcache між кількома проектами PHP?
Так, можна спільно використовувати один екземпляр Memcache для кількох проектів. Memcache — це простір для зберігання пам’яті, і ви можете запускати memcache на одному або кількох серверах. Ви також можете налаштувати клієнта для спілкування з певним набором примірників. Таким чином, ви можете запустити два різні процеси Memcache на одному хості, але вони є повністю незалежними. За винятком випадків, коли ви розділили свої дані, тоді необхідно знати, з якого екземпляра отримати дані або в який їх помістити.
102) Поясніть, як можна оновити Memcached, коли ви вносите зміни в PHP?
Коли PHP змінюється, ви можете оновити Memcached за допомогою
- Профілактичне очищення кешу: Очищення кешу під час вставки або оновлення
- Скидання кешу: Це подібно до першого методу, але замість простого видалення ключів і очікування наступного запиту даних для оновлення кешу, скидання значень після вставки або оновлення.
Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)