Загальні
Що таке посилання?
Посилання в PHP - це засіб доступу до вмісту однієї змінної під різними іменами. Вони не схожі на покажчики C оскільки в
PHP - це псевдоніми в таблиці імен змінних, а ім'я змінної та її вміст - це різні речі, тому один вміст може мати різні
імена.
Які основні операції з використанням посилань?
З посиланнями можна виконати три базові операції: присвоєння за посиланням, передача за посиланням та повернення за
посиланням.
Присвоєння за посиланням
Це коли одна змінна посилається на значення іншої змінної, наприклад:
<?php
$a =& $b;
?>
Тут змінні $a і $b вказують на те саме значення.
Передача за посиланням
Для цього створюються дві змінні, які посилаються на один і той самий зміст: одну передають у функції, а іншу — в
області видимості виклику, наприклад:
<?php
function foo(&$var)
{
$var++;
}
$a = 5;
foo($a);
?>
В результаті функція змінить значення, на яке вказує змінна $a, на 6. Причина полягає в тому, що функції
foo змінна $var посилається на той самий зміст, що й змінна $a
Повернення посилань
Повернення за посиланням використовується, коли потрібно визначити змінну, до якої потрібно прив'язати посилання.
Приклад з об'єктом, де змінна $myValue, є посиланням на властивість об'єкта $value:
<?php
class Foo
{
public $value = 42;
public function &getValue()
{
return $this->value;
}
}
$obj = new Foo();
$myValue = &$obj->getValue();
$obj->value = 2;
echo $myValue; // 2
?>
Інший приклад:
<?php
function &collector()
{
static $collection = array();
return $collection;
}
$collection = &collector();
$collection[] = 'foo';
?>
Назвіть прості типи даних, підтримувані в РНР?
- Скалярні типи:
- bool - логічний тип приймає лише два значення, які виражають істинність: true чи false.
- int - цілі числа.
- float - числа з плаваючою комою.
- string - це рядок, що містить набір символів, у якому символ - те саме, що й байт.
- array - масив, упорядкована структура даних, яка пов'язує значення та ключі.
- object - об'єкти, сутність що володіє станом і поведінкою, та має поля і методи.
- resource - це тип, який зберігає посилання на зовнішній ресурс.
- never - це тип, що означає, що функція припинить роботу без повернення значення.
- void - це тип, який вказує, що функція не повертає значення.
- null
Що таке інкремент і декремент, у чому різниця між префіксним і постфіксним інкрементом і декрементом?
Що таке рекурсія?
У чому різниця між =, == і ===?
Які знаєте принципи ООП?
Яка система типів використовується в PHP? Опишіть плюси та мінуси.
Чим відрізняються ключові слова: include і require, mysql_connect і mysql_pconnect?
Що таке інтерфейси? Чи використовуєте їх? Якщо так — розкажіть про це.
Що таке абстрактний клас і чим він відрізняється від інтерфейсу?
Чи може абстрактний клас містити приватний метод?
Які модифікатори видимості є в РНР?
Які магічні методи ви знаєте і як їх застосовують?
Що таке генератори і як їх використовувати?
Що робить оператор yield?
Що таке traits? Альтернативне рішення? Наведіть приклад.
Опишіть поведінку під час використання traits з однаковими іменами полів і/або методів?
Чи будуть доступні приватні методи trait в класі?
Чи можна компонувати traits в trait?
Розкажіть про обробку помилок і винятки (try catch, finaly і throw).
Що таке type hinting, як працює, навіщо потрібен?
Що таке namespace’и та навіщо вони?
Порівняння значень змінних у РНР і підводні камені? Приведення типів. Що змінилося в PHP 8 у цьому контексті?
Як працює session у РНР, де зберігається, як ініціалізується?
Суперглобальні масиви. Які знаєте? Як використовували?
Порівняйте include vs required, include_once vs required_once.
Що означає складність алгоритму?
Що таке замикання в PHP? Наведіть приклад.
Яка різниця між замиканням у PHP і JavaScript?
Що таке пізнє зв’язування? Розкажіть про поведінку та застосування static.
Як перевизначити зберігання сесій?
Розкажіть про SPL-бібліотеку (Reflection, autoload, структури даних).
Розкажіть про принципи SOLID.
Розкажіть про шаблони GRASP.
Розкажіть про Dependency Injection: що таке DI-контейнери? Які є варіанти реалізацій?
Що вам відомо про MVC?
Що вам відомо про шаблони GoF?
Що вам відомо про шаблони, які застосовуються в ORM?
Напишіть/розкажіть на PHP приклад реалізації патерну Singleton.
Що таке Docker? Яким є принцип його роботи?
Що таке LAMP/NAMP?
Розкажіть про regexp.
Розкажіть про SSH-протокол.
Що таке PDO?
Що нового з’явилося в PHP 8?
Що таке PHP PEAR?
Які версії PHP досі підтримуються?
У чому різниця між GET і POST?
Чим відрізняються оператори BREAK і CONTINUE?
Чи є різниця між одинарними та подвійними лапками?
Що таке Cookie і навіщо вони використовуються?
Що не можна зберігати в Cookie і чому?
Якому середовищу розробки віддаєте перевагу й чому?