Якісна підготовка - один з ключових елементів, необхідних для успішного проходження співбесіди, яким, до речі, часто нехтують.
Вивчивши ці теми, ви помітно поліпшите свою теоретичну базу і значно збільшите свої шанси на отримання заповітної роботи.
- Скільки типів даних в РНР?
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 - викликається при спробі використовувати об'єкт в якості опції.