Общие
Что такое ссылка?
Ссылки в 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 і чому?
Якому середовищу розробки віддаєте перевагу й чому?