Ответы на вопросы для собеседования по PHP
Какие типы данных есть в PHP?
Хотя PHP это динамический язык, все же все данные в нем имеют четкие типы.
Скалярные типы:
- bool
- int
- float
(иногда встречается название double
что для php не имеет разницы)
- string
Смешанные типы:
- array
- object
- callable
- iterable
Специальные типы:
- resource
- null
Обязательно ли писать ?> в конце скрипта?
Для файлов, содержащих только PHP-код, закрывающий тег ?>
лучше не использовать. Он не требуется синтаксисом PHP и его пропуск предотвращает случайное включение в вывод конечных пробелов.
В чём разница между === и ==?
1 === 1: true
1 == 1: true
1 === "1": false
1 == "1": true
"foo" === "foo": true
Оператор ==
производит приведение операндов к одному типу перед сравнением.
Оператор ===
сравнивает операнды без приведения типов, как есть.
Что такое ссылка в PHP?
Ссылки в PHP - это средство доступа к содержимому одной переменной под разными именами. Они не похожи на указатели в C - например, вы не можете выполнять над ними адресную арифметику, они не являются реальными адресами в памяти и т.д. Вместо этого указатели в PHP - это псевдонимы в таблице имён переменных.
Как передать переменную по ссылке?
function foo(&$var)
{
$var++;
}
$a = 5;
foo($a);
// $a здесь равно 6
Вы можете передать переменную по ссылке в качестве аргумента в функцию, чтобы эта функция могла изменять значение переменной.
Замечание: В вызове функции отсутствует знак ссылки - он есть только в определении функции. Этого достаточно для корректной передачи аргументов по ссылке.
По ссылке можно передавать:
- Переменные, например
foo($a)
- Ссылки, возвращаемые функцией, например:
function foo(&$var)
{
$var++;
}
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
Для чего нужен ini__set()?
PHP позволяет изменять некоторые из настроек, приведенных в php.ini
, с помощью ini_set()
.
ini__set()
принимает два аргумента: первый — это имя параметра, который нужно изменить, а второй — его новое значение.
Данный код активирует настройку display_error
:
ini_set('display_errors', '1');
Нужно поместить приведенный выше код в начало скрипта, чтобы параметр оставался включенным до конца. Кроме того, значения, установленные через ini_set()
, применимы только к текущему скрипту.
Что такое интерфейс в PHP?
Интерфейс в PHP — это конструкция языка, описывающая абстрактный тип данных (АТД). АТД определяет набор операций (функций), независимых от конкретной реализации типа для манипулирования его значениями. На практике интерфейсы содержат определения функций (то есть описание их сигнатур) без их реализации.
Что такое абстрактный класс?
Абстрактный класс - это так называемый базовый класс, не предназначенный для создания его экземпляров (объектов). Основной смысл и назначение абстрактных классов заключается в расширении возможностей его дочерних классов.
Поддерживает ли PHP множественное наследование?
Нет, PHP не поддерживает множественное наследование. То есть у производного класса может быть только один родительский. Но с помощью “магической” функции __call()
его можно эмулировать.
Какие есть модификаторы доступа в PHP?
С помощью специальных модификаторов можно задать область видимости для свойств и методов класса. В PHP есть три таких модификатора:
public
: свойство, метод или конструктор будут доступны для всех классов, которые их используют.
protected
: может быть использован только в самом классе, а также в его дочерних.
private
: может быть использован только в самом классе и нигде больше.
Зачем нужен «static» в PHP?
1. Для объявления статической локальной переменной. 2. Для объявления статического свойства или метода класса. 3. Для реализации позднего статического связывания.
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое позднее статическое связывание?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое PDO?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Разница между isset() и empty()?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Разница между require и include?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Зачем require и include приставка _once?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Разница между одинарными и двойными кавычками?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Разница между self и $this?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что работает быстрее: преинкремент или постинкремент?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Какой алгоритм сортировки используется в PHP для таких функций, как sort и т. д.?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Какой алгоритм используется в PHP для сборки мусора?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое PSR?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Какая разница между echo и print?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое магические методы?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое генераторы?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое трейты?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое пространства имён?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое сессии?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое суперглобальные переменные?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое $GLOBALS?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Что такое замыкания?
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=32&q=75)
Также в этой категории
Вам может быть интересно
Топ тредов
: Задача в JS под названием "Соревнование" содержит ошибку
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=48&q=75)
: Добавьте возможность ставить реакции на решенные задачи других коллег)
: Добавьте разделы по MongoDB и Nest.js
![Логотип Девстанции Логотип Девстанции](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.767d6ec0.png&w=48&q=75)