22 Найпоширеніших питання на співбесідах на посаду веб-розробника

22 Найпоширеніших питання на співбесідах на посаду веб-розробника

Якісна підготовка - один з ключових елементів, необхідних для успішного проходження співбесіди, яким, до речі, часто нехтують.

Вивчивши ці теми, ви помітно поліпшите свою теоретичну базу і значно збільшите свої шанси на отримання заповітної роботи.

- Скільки типів даних в РНР?

PHP підтримує 8 базових типів даних.

4 скалярних типи:

- boolean. Логічний тип даних, змінні даного типу можуть набувати значень true або false.

- integer. Цілочисельний тип даних, змінні можуть приймати цілі значення (... -2, -1, 0, 1, 2 ...) в діапазоні від -2 ^ 31 до + 2 ^ 31. Якщо значення перевищує даний поріг - воно автоматично переводиться в тип float.

- float. Числовий тип даних з плаваючою точкою, може містити як цілі, так і дробові величини.

- string. Строковий тип даних. Містить нефиксированное кількість різних символів. PHP не накладає ніяких обмежень на довжину рядка, тому можна сміливо працювати навіть з ДУЖЕ великими рядками.

2 комплексних (складових) типу:

- array. Масив, містить упорядкований список елементів.

- object. Об'єкт, містить якийсь об'єкт (екземпляр класу).

2 спеціальних типу:

- NULL. Порожній тип даних, що позначає відсутність будь-якого значення. Про таких значеннях зазвичай говорять «не визначене». Порожнім значенням можна форматувати змінні будь-якого іншого типу.

- Що таке static функція і чим вона відрізняється від «звичайної» (чи не static)?

- Чи є різниця між одинарними і подвійними лапками в PHP?

- Написати програму, яка виводить прості числа, тобто діляться без залишку тільки на себе і на 1.

- Напиши програму-цензор, яка б заміняла вводяться користувачем у форму слова «fuck», «idiot» і «bitch» на «f ** k», «id ** t» і «bi ** h».

- Що таке динамічні змінні?

Динамічноїзмінної вважається та, ім'я якої зберігається в самій змінної. Це так звана «змінна змінна». наприклад:

$$ var - динамічна, її ім'я може змінюватися разом зі зміною $ var. Також можна пов'язати ім'я змінної з вмістом іншої змінної неявно:

- Що таке шаблони (патерни) проектування?

Патерн проектування - це загальне типове рішення деякої проблеми, багаторазово повторюване в процесі проектування архітектури програмного продукту. Вони показують відносини і взаємодії між класами, дозволяють зробити систему гнучкою і легко змінною. За рахунок їх правильного використання підвищується коефіцієнт використання готових рішень.

- Напиши приклад реалізації поліморфізму.

- Які ще є парадигми (моделі, підходи) програмування крім ООП?

З тих, що найбільш часто зустрічаються: функціональна, аспектно-орієнтована і процeдурная.

- Потрібно Алерт вивести якесь повідомлення, через 3 секунди після запуску скрипта. Як це зробити?

- Є дві функції. Чи є між ними різниця? Якщо є, то яка?

Різниця є - вона полягає в видимості функції. Варіант функції без var видно всюди в поточній області видимості. У тому числі і до самого визначення функції. Варіант з var привласнює функцію змінної, тому така функція видна тільки після визначення.

- Що Зроби код: break me_baby; ?

Вийде з поточного блоку циклу або switch на мітку «me_baby».

- Що таке SQL-ін'єкція?

SQL-ін'єкції - вбудовування шкідливого коду в запити до бази даних. З використанням SQL-ін'єкцій зловмисник може не тільки отримати закриту інформацію з бази даних, а й, за певних умов, внести туди зміни. Уразливість по відношенню до SQL-ін'єкцій виникає через те, що призначена для користувача інформація потрапляє в запит до бази даних без належної обробки: щоб скрипт ні вразливий, потрібно переконатися, що всі призначені для користувача дані потрапляють в усі запити до бази даних в екранованому вигляді.

- Припустимо, у вас є Інтернет-магазин. Складіть запит, який покаже, скільки грошей приніс кожен окремо взятий покупець в цілому за весь час існування магазину.

- У чому різниця між записом #my і .my?

#my - селектор ID.

my - селектор класу.

- Що таке псевдокласи?

Псевдокласи - це те, що зазвичай пишуть після селектора через двокрапку, щоб визначити реакцію або стан для даного селектора. Найвідоміші псевдокласи - це: link. hover. visited і: active. Псевдокласи володіють такою структурою:

тобто потрібно всього лише помістити двокрапку між селектором і псевдоклас.

- Знайти всі елементи div з класом one, а також всі елементи p з класом two, потім додати їм усім клас three і візуально плавно спустити вниз.

- Вибрати div`и, у яких немає класу cls

- Що таке DOCTYPE і навіщо він потрібен?

DOCTYPE - це визначення типу документа (Document Type Definition (DTD)), правила, відповідно до яких здійснюється перевірка конкретного документа (веб-сторінки) XML або (X) HTML. Завдяки цій записи браузер визначає, яка в даному документі використовується версія DTD. А потрібен він для того, щоб браузери правильно відображали розмітку документа. Якщо не вказано DOCTYPE, то браузер буде додавати «відсебеньки», причому кожен браузер буде додавати свою «відсебеньки». В результаті ні про яку кросбраузерності не може і йтися.

- Що таке entities?

Entities - це комбінації знака і літерного або цифрового коду після неї, призначені для заміщення символів, які не можуть зустрічатися в «чистому» вигляді в HTML-тексті, наприклад, символу «<».

- Які магічні методи знаєш? Що це взагалі таке?

Це методи, зарезервовані в php, які починаються з подвійного підкреслення "__".

Список всіх магічних методів:

__construct і __destruct - найпопулярніші методи, які реалізують базові поняття об'єктно-орієнтованого програмування: конструктор і деструктор;

__call, __callStatic, __get і __set - методи, пов'язані з перевантаженням звернень як до властивостей, так
і до методів. Методи __get () і __set () викликаються при установці і отриманні значення властивості,
а методи __call () і __callStatic - при виклику методу. Варто зауважити, що ці магічні функції
будуть викликатися тільки і виключно в тому випадку, якщо запитані метод або властивість
не існують;

__isset - метод, що спрацьовує при виклику функцій empty () або isset () на неіснуючому
або недоступному властивості класу;

__unset - спрацьовує при виконанні функції unset () на неіснуючому або недоступному властивості класу;

__sleep і __wakeup - методи, які викликаються тільки з функцій serialize і unserialize з-
відповідально. Метод __sleep буде викликаний відразу при застосуванні до об'єкта функції serialize, а
метод __wakeup - при застосуванні unserialize. На даний момент методи застосовуються для збереження поточного стану системи з подальшим відновленням даного стану
(Наприклад, коннект до бази);

__toString - метод, за допомогою якого можна звертатися до класу як до рядка (наприклад, з
допомогою print або echo);

__set_state - метод, який викликається для класів, які експортують значення властивостей функ-
єю var_export ();

__clone - викликається при клонуванні об'єкту (введений для використання через те, що об'єк
єкти в php5 і вище передаються по посиланню);

__invoke - викликається при спробі використовувати об'єкт в якості опції.