100 лучших вопросов и ответов на собеседовании по PHP (PDF)
Вопросы для собеседования по PHP для первокурсников
1) Что такое PHP?
PHP — это веб-язык, основанный на сценариях, которые позволяют разработчикам динамически создавать генерируемые веб-страницы.
2) Что означают инициалы PHP?
PHP означает препроцессор гипертекста.
👉 Бесплатная загрузка PDF-файла: Вопросы и ответы по PHP-интервью
3) На какой язык программирования похож PHP?
Синтаксис PHP напоминает Perl и C
4) Что означает ГРУША?
PEAR означает «Репозиторий расширений и приложений PHP». Он расширяет PHP и обеспечивает более высокий уровень программирования для веб-разработчиков.
5) Какая версия PHP используется на самом деле?
Версия 7.1 или 7.2 является рекомендуемой версией PHP.
6) Как выполнить PHP-скрипт из командной строки?
Просто используйте интерфейс командной строки PHP (CLI) и укажите имя файла скрипта, который будет выполнен, следующим образом:
php script.php
7) Как запустить интерактивную оболочку PHP из интерфейса командной строки?
Просто используйте программу PHP CLI с опцией -a следующим образом:
php -a
8) Каков правильный и наиболее распространенный способ начать и закончить блок кода PHP?
Два наиболее распространенных способа запуска и завершения PHP-скрипта:
<?php [ --- PHP code---- ] ?> and <? [--- PHP code ---] ?>
9) Как мы можем отобразить вывод непосредственно в браузере?
Чтобы иметь возможность отображать вывод непосредственно в браузере, мы должны использовать специальные теги .
10) В чем основная разница между PHP 4 и PHP 5?
PHP 5 представляет множество дополнительных ООП (Объектно-ориентированного программирования) Особенности.
11) Поддерживается ли в PHP множественное наследование?
PHP поддерживает только одиночное наследование; это означает, что класс может быть расширен только из одного класса с использованием ключевого слова «расширенный».
12) В чем смысл финального класса и финального метода?
«final» представлен в PHP5. Финальный класс означает, что этот класс не может быть расширен, а конечный метод не может быть переопределен.
13) Как осуществляется сравнение объектов в PHP?
Мы используем оператор «==», чтобы проверить, являются ли два объекта экземплярами одного и того же класса, имеют одинаковые атрибуты и равные значения. Мы можем проверить, ссылаются ли два объекта на один и тот же экземпляр одного и того же класса, используя оператор идентификации «===».
14) Как могут взаимодействовать PHP и HTML?
Можно генерировать HTML с помощью сценариев PHP, а также можно передавать фрагменты информации из HTML в PHP.
15) Какой тип операции необходим при передаче значений через форму или URL-адрес?
Если мы хотим передать значения через форму или URL-адрес, нам нужно закодировать и декодировать их с помощью htmlspecialchars() и urlencode().
16) Как PHP и Javascript взаимодействовать?
PHP и Javascript не может напрямую взаимодействовать, поскольку PHP является серверным языком и Javascript это язык клиентской стороны. Однако мы можем обмениваться переменными, поскольку PHP может генерировать Javascript код, который будет выполняться браузером, и можно передать определенные переменные обратно в PHP через URL-адрес.
17) Что необходимо для использования функции изображения?
Библиотека GD необходима для выполнения функций изображения.
18) Для чего используется функция imagetypes()?
imagetypes()
дает формат и типы изображений, поддерживаемые текущей версией GD-PHP.
19) Какие функции следует использовать для получения свойств изображения (размера, ширины и высоты)?
Команда функции getimagesize()
по размеру, imagesx()
для ширины и imagesy()
для высоты.
20) Как сбои при выполнении обрабатываются с помощью функций include() и require()?
Если функция require()
не может получить доступ к файлу, то это заканчивается фатальной ошибкой. Однако include()
функция выдает предупреждение, и PHP-скрипт продолжает выполняться.
21) В чем основная разница между require() и require_once()?
require()
и require_once()
выполняет ту же задачу, за исключением того, что вторая функция проверяет, включен ли уже PHP-скрипт, перед его выполнением.
(то же самое для include_once() и include())
22) Как я могу отображать текст с помощью PHP-скрипта?
Возможны два метода:
<!--?php echo "Method 1"; print "Method 2"; ?-->
23) Как мы можем отобразить информацию о переменной, доступную для чтения человеком с помощью PHP?
Чтобы иметь возможность отображать удобочитаемый результат, мы используем print_r()
.
24) Как можно установить бесконечное время выполнения PHP-скрипта?
set_time_limit(0), добавленный в начале скрипта, устанавливает бесконечное время выполнения, чтобы не возникало ошибки PHP «превышено максимальное время выполнения». Это также можно указать в файле php.ini.
Вопросы и ответы на собеседовании по PHP для опытных
25) Что означает ошибка PHP «Ошибка анализа в PHP – неожиданная переменная T_variable в строке x»?
Это синтаксическая ошибка PHP, означающая, что ошибка в строке x останавливает анализ и выполнение программы.
26) Что нам нужно сделать, чтобы иметь возможность экспортировать данные в файл Excel?
Самый распространенный и используемый способ — получить данные в формате, поддерживаемом Excel. Например, можно написать файл .csv, выбрать, например, запятую в качестве разделителя между полями, а затем открыть файл в Excel.
27) Чем полезна функция file_get_contents()?
file_get_contents()
позволяет прочитать файл и сохранить его в строковой переменной.
28) Как мы можем подключиться к MySQL база данных из PHP-скрипта?
Чтобы иметь возможность подключиться к MySQL базы данных, мы должны использовать функцию mysqli_connect() следующим образом:
<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->
29) Чем полезна функция mysql_pconnect()?
mysql_pconnect()
обеспечить постоянное соединение с базой данных, это означает, что соединение не закрывается при завершении PHP-скрипта.
Эта функция не поддерживается в PHP 7.0 и выше.
30) Как набор результатов Mysql обрабатывается в PHP?
Набор результатов можно обрабатывать с помощью mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object или mysqli_fetch_row.
31) Как узнать количество строк, возвращенных в наборе результатов?
Функция mysqli_num_rows()
возвращает количество строк в наборе результатов.
32) Какая функция дает нам количество записей, на которые влияет запрос?
mysqli_affected_rows()
вернуть количество записей, затронутых SQL-запросом.
33) В чем разница между mysqli_fetch_object() и mysqli_fetch_array()?
Команда mysqli_fetch_object()
функция собирает первую единственную совпадающую запись, где mysqli_fetch_array()
собирает все соответствующие записи из таблицы в массив.
34) Как мы можем получить доступ к данным, отправленным через URL-адрес, с помощью метода GET?
Чтобы получить доступ к данным, отправленным с помощью метода GET, мы используем массив $_GET следующим образом:
www.url.com?var=value $variable = $_GET["var"]; this will now contain 'value'
35) Как мы можем получить доступ к данным, отправленным через URL-адрес, с помощью метода POST?
Чтобы получить доступ к данным, отправленным таким образом, вы используете массив $_POST.
Представьте, что у вас есть поле формы с именем «var», когда пользователь нажимает «Отправить» в форму публикации, затем вы можете получить доступ к значению следующим образом:
$_POST["var"];
36) Как мы можем проверить, что значение данной переменной является числом?
Можно использовать специальную функцию is_numeric(), чтобы проверить, является ли это числом или нет.
37) Как мы можем проверить, что значение данной переменной является буквенно-цифровым?
Можно использовать специальную функцию ctype_alnum, чтобы проверить, является ли это буквенно-цифровым значением или нет.
38) Как проверить, пуста ли данная переменная?
Если мы хотим проверить, имеет ли переменная значение или нет, можно использовать функцию пустой().
39) Что означает функция unlink()?
Функция unlink() предназначена для работы с файловой системой. Он просто удаляет файл, указанный в качестве записи.
40) Что означает функция unset()?
Функция unset() предназначена для управления переменными. Это сделает переменную неопределенной.
41) Как мне экранировать данные перед сохранением их в базе данных?
Функция addslashes позволяет нам экранировать данные перед сохранением в базе данных.
42) Как удалить escape-символы из строки?
Функция Stripslashes позволяет нам удалять escape-символы перед апострофами в string.
43) Как мы можем автоматически экранировать входящие данные?
Нам необходимо включить запись кавычек Magic в файле конфигурации PHP.
44) Что означает функция get_magic_quotes_gpc()?
Функция get_magic_quotes_gpc() сообщает нам, включены ли магические кавычки или нет.
45) Можно ли удалить HTML-теги из данных?
Функция Strip_tags() позволяет нам очистить строку от тегов HTML.
46) для чего полезна статическая переменная в функции?
Статическая переменная определяется внутри функции только первый раз, и ее значение можно изменить во время вызова функции следующим образом:
<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction(); //1 testFunction(); //2 testFunction(); //3 ?-->
47) Как определить переменную, доступную в функциях PHP-скрипта?
Эта функция возможна с использованием ключевого слова global.
48) Как можно вернуть значение из функции?
Функция возвращает значение, используя инструкцию return $value;.
49) Какой метод хеширования наиболее удобен для хеширования паролей?
Предпочтительно использовать crypt(), который изначально поддерживает несколько алгоритмов хеширования, или функцию hash(), которая поддерживает больше вариантов, чем crypt(), а не использовать общие алгоритмы хеширования, такие как md5, sha1 или sha256, поскольку они задуманы как быстрые. Следовательно, хеширование паролей с помощью этих алгоритмов может создать уязвимость.
50) Какое криптографическое расширение обеспечивает создание и проверку цифровых подписей?
PHP-OpenSSL Расширение обеспечивает несколько криптографических операций, включая генерацию и проверку цифровых подписей.
Вопросы для собеседования по PHP для 5-летнего опыта
51) Как определяется константа в скрипте PHP?
Директива define() позволяет нам определить константу следующим образом:
define ("ACONSTANT", 123);
52) Как передать переменную по ссылке?
Чтобы иметь возможность передавать переменную по ссылке, мы ставим перед ней амперсанд, как показано ниже: $var1 = &$var2
53) Будет ли в PHP работать сравнение целого числа 12 и строки «13»?
«13» и 12 можно сравнить в PHP, поскольку он приводит все к целочисленному типу.
54) Как можно привести типы в PHP?
Имя выходного типа должно быть указано в круглых скобках перед переменной, которая должна быть приведена следующим образом:
* (int), (целое число) – приведение к целому числу
* (bool), (boolean) – привести к логическому значению
* (float), (double), (real) – приведение к плавающему значению
* (строка) – привести к строке
* (массив) – привести к массиву
* (объект) – привести к объекту
55) Когда условный оператор заканчивается на endif?
Когда за исходным if следовал:, а затем блок кода без фигурных скобок.
56) Как в PHP используется тернарный условный оператор?
Он состоит из трех выражений: условия и двух операндов, описывающих, какая инструкция должна выполняться, когда указанное условие истинно или ложно, следующим образом:
Expression_1?Expression_2 : Expression_3;
57) Для чего используется функция func_num_args()?
Функция func_num_args() используется для определения количества параметров, переданных в функцию.
58) Если переменной $var1 присвоено значение 10, а переменной $var2 присвоен символ var1, каково значение $$var2?
$$var2 содержит значение 10.
59) Что означает доступ к классу через ::?
:: используется для доступа к статическим методам, не требующим инициализации объекта.
60) В PHP объекты передаются по значению или по ссылке?
В PHP объекты передаются по ссылке.
61) Вызываются ли родительские конструкторы неявно внутри конструктора класса?
Нет, родительский конструктор должен вызываться явно следующим образом:
parent::constructor($value)
62) В чем разница между __sleep и __wakeup?
__sleep возвращает массив всех переменных, которые необходимо сохранить, а __wakeup извлекает их.
63) Что быстрее?
1- Объединение двух переменных следующим образом:
$variable1 = 'Hello '; $variable2 = 'World'; $variable3 = $variable1.$variable2;
Or
2- $variable3 = "$variable1$variable2";
$variable3 будет содержать «Hello World». Первый код работает быстрее, чем второй, особенно для больших наборов данных.
64) каково определение сессии?
Сеанс — это логический объект, позволяющий нам сохранять временные данные на нескольких страницах PHP.
65) Как инициировать сеанс в PHP?
Использование функции session_start() позволяет нам активировать сеанс.
66) Как можно распространить идентификатор сеанса?
Вы можете распространять идентификатор сеанса через файлы cookie или параметры URL.
67) Что означает постоянный файл cookie?
Постоянные файлы cookie постоянно хранятся в файле cookie на компьютере браузера. По умолчанию файлы cookie являются временными и удаляются, если мы закрываем браузер.
68) Когда заканчиваются сеансы?
Сеансы автоматически завершаются, когда PHP-скрипт завершает выполнение, но их можно завершить вручную с помощью session_write_close().
69) В чем разница между session_unregister() и session_unset()?
Функция session_unregister() отменяет регистрацию глобальной переменной из текущего сеанса, а функция session_unset() освобождает все переменные сеанса.
70) Что означает $GLOBALS?
$GLOBALS — это ассоциативный массив, включающий ссылки на все переменные, которые в данный момент определены в глобальной области действия скрипта.
Вопросы для собеседования по PHP для 10-летнего опыта
71) Что означает $_SERVER?
$_SERVER — это массив, включающий информацию, созданную веб-сервером, такую как пути, заголовки и местоположения сценариев.
72) Что означает $_FILES?
$_FILES — это ассоциативный массив, состоящий из элементов, отправленных в текущий скрипт с помощью метода HTTP POST.
73) В чем разница между $_FILES['userfile']['name'] и $_FILES['userfile']['tmp_name']?
$_FILES['userfile']['name'] представляет исходное имя файла на клиентском компьютере,
$_FILES['userfile']['tmp_name'] представляет временное имя файла, хранящегося на сервере.
74) Как мы можем получить сообщение об ошибке, если возникла проблема с загрузкой файла?
$_FILES['userfile']['error'] содержит код ошибки, связанный с загруженным файлом.
75) Как изменить максимальный размер загружаемых файлов?
Мы можем изменить максимальный размер загружаемых файлов, изменив upload_max_filesize в php.ini.
76) Что означает $_ENV?
$_ENV — это ассоциативный массив переменных, отправляемый в текущий PHP-скрипт через метод среды.
77) Что означает $_COOKIE?
$_COOKIE — это ассоциативный массив переменных, отправляемый в текущий сценарий PHP с использованием файлов cookie HTTP.
78) Что означает область видимости переменных?
Областью действия переменной является контекст, в котором она определена. По большей части все переменные PHP имеют только одну область действия. Эта единая область охватывает также включенные и обязательные файлы.
79) в чем разница между оператором «ПОРАЗОВОЕ И» и оператором «ЛОГИЧЕСКОЕ И»?
$a и $b: TRUE, если оба $a и $b имеют значение TRUE.
$a и $b: биты, которые установлены как в $a, так и в $b, устанавливаются.
80) Каковы два основных строковых оператора?
Первый — это оператор конкатенации ('.'), который возвращает объединение правого и левого аргументов. Второй — ('.='), который добавляет аргумент справа к аргументу слева.
81) Что означает оператор массива '==='?
$a === $b TRUE, если $a и $b имеют одинаковые пары ключ/значение в том же порядке и одного и того же типа.
82) В чем разница между $a != $b и $a !== $b?
!= означает неравенство (ИСТИНА, если $a не равна $b), а !== означает неидентичность (ИСТИНА, если $a не идентична $b).
83) Как мы можем определить, является ли переменная PHP экземпляром объекта определенного класса?
Чтобы проверить, является ли переменная PHP экземпляром определенного класса, мы используем instanceof.
84) Чем полезен оператор goto?
Оператор goto можно разместить, чтобы разрешить переход внутри программы PHP. Цель указывается меткой, за которой следует двоеточие, а инструкция указывается в виде оператора перехода, за которым следует желаемая метка цели.
85) В чем разница между Exception::getMessage и Exception::getLine?
Exception::getMessage позволяет нам получить сообщение об исключении, а Exception::getLine позволяет нам получить строку, в которой произошло исключение.
86) Что означает выражение Exception::__toString?
Exception::__toString дает строковое представление исключения.
87) Как можно разобрать файл конфигурации?
Функция parse_ini_file() позволяет нам загрузить ini-файл, указанный в имени файла, и возвращает настройки в нем в ассоциативном массиве.
88) Как определить, установлена ли переменная?
Логическая функция isset определяет, установлена ли переменная и не имеет ли она значение NULL.
89) В чем разница между функциями strstr() и stristr()?
Строковая функция strstr(string allString, string occ) возвращает часть allString от первого появления occ до конца allString. Эта функция чувствительна к регистру. stristr() идентичен strstr(), за исключением того, что он не чувствителен к регистру.
90) В чем разница между forи foreach?
для выражается следующим образом:
для (выражение1; выражение2; выражение3)
заявление
Первое выражение выполняется один раз в начале. На каждой итерации оценивается expr2. Если оно истинно, цикл продолжается и выполняются операторы внутри for. Если его значение равно ЛОЖЬ, выполнение цикла завершается. expr3 проверяется в конце каждой итерации.
Однако foreach предоставляет простой способ перебора массивов и используется только с массивами и объектами.
91) Можно ли отправить форму с помощью специальной кнопки?
Можно использовать document.form.submit()
функция отправки формы. Например: <input type=button value="SUBMIT" onClick="document.form.submit()">
92) В чем разница между ereg_replace() и eregi_replace()?
Функция eregi_replace() идентична функции ereg_replace(), за исключением того, что она игнорирует различие регистра при сопоставлении буквенных символов.
93) Можно ли защитить специальные символы в строке запроса?
Да, мы используем функцию urlencode(), чтобы защитить специальные символы.
94) Какие три класса ошибок могут возникнуть в PHP?
Тремя основными классами ошибок являются уведомления (некритические), предупреждения (серьезные ошибки) и фатальные ошибки (критические ошибки).
95) В чем разница между символами \034 и \x34?
\034 — восьмеричное число 34, а \x34 — шестнадцатеричное число 34.
96) Как передать переменную при навигации между страницами?
Переменные между страницами PHP можно передавать с помощью сеансов, файлов cookie или скрытых полей формы.
97) Можно ли продлить время выполнения PHP-скрипта?
Использование set_time_limit(int секунд) позволяет нам продлить время выполнения PHP-скрипта. Ограничение по умолчанию составляет 30 секунд.
98) Можно ли уничтожить файл cookie?
Да, это возможно, установив для файла cookie просроченный срок действия.
99) Какое время сеанса в PHP по умолчанию?
Время сеанса по умолчанию в php — до закрытия браузера.
100) Можно ли использовать COM-компонент в PHP?
Да, можно интегрировать компоненты (распределенной) объектной модели компонентов ((D)COM) в сценарии PHP, которые предоставляются в качестве платформы.
101) Объясните, можно ли использовать один экземпляр Memcache в нескольких проектах PHP?
Да, один экземпляр Memcache можно использовать в нескольких проектах. Memcache — это пространство памяти, и вы можете запускать memcache на одном или нескольких серверах. Вы также можете настроить свой клиент для взаимодействия с определенным набором экземпляров. Таким образом, вы можете запустить два разных процесса Memcache на одном хосте, и при этом они полностью независимы. Если только вы не секционировали свои данные, тогда возникает необходимость знать, из какого экземпляра брать данные или куда их помещать.
102) Объясните, как можно обновить Memcached при внесении изменений в PHP?
При изменении PHP вы можете обновить Memcached с помощью
- Очистка кэша заранее: Очистка кеша при вставке или обновлении
- Сброс кэша: Он похож на первый метод, но вместо того, чтобы просто удалять ключи и ждать следующего запроса данных для обновления кеша, сбрасывайте значения после вставки или обновления.
Эти вопросы для собеседования также помогут вам в устной речи.