Освоение PHP на собеседованиях: лучшие вопросы за 10 лет опыта

  1. В чем разница между include() и require() в PHP?
    В PHP и include(), и require() используются для включения внешних файлов. Однако основное отличие заключается в обработке ошибок. Оператор include() выдаст предупреждение и продолжит выполнение сценария, если указанный файл не найден, тогда как оператор require() выдаст фатальную ошибку и остановит выполнение сценария.

Пример:

// include() example
include('myfile.php');
echo "This line will be executed even if myfile.php is not found.";
// require() example
require('myfile.php');
echo "This line will not be executed if myfile.php is not found.";
  1. Поясните концепцию сеансов в PHP.
    Сессии используются для хранения и получения данных на нескольких страницах для конкретного пользователя. Сеансы PHP работают путем присвоения каждому пользователю уникального идентификатора сеанса, который сохраняется в виде файла cookie или передается через URL-адрес. Данные сеанса хранятся на сервере, и к ним можно получить доступ в течение всего сеанса просмотра пользователя.

Пример:

// Starting a session
session_start();
// Storing data in a session
$_SESSION['username'] = 'JohnDoe';
// Retrieving data from a session
echo $_SESSION['username']; // Output: JohnDoe
  1. В чем разница между методами GET и POST в PHP?
    GET и POST — это два часто используемых метода HTTP для отправки данных на сервер. Основное различие между ними заключается в способе передачи данных. В методе GET данные добавляются к URL-адресу, а в методе POST данные отправляются в теле HTTP-запроса.

Пример:

// GET method
echo $_GET['username'];
// POST method
echo $_POST['username'];
  1. Как предотвратить атаки с помощью SQL-инъекций в PHP?
    Атаки с использованием SQL-инъекций происходят, когда злоумышленник манипулирует входными данными для выполнения несанкционированных SQL-запросов. Чтобы предотвратить такие атаки, всегда следует использовать подготовленные инструкции или параметризованные запросы с заполнителями вместо прямого добавления переменных в инструкции SQL.

Пример:

// Using prepared statements
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->execute(['username' => $username]);
  1. Поясните разницу между операторами == и === в PHP.
    Оператор == проверяет равенство только по значению, тогда как оператор === проверяет как значение, так и тип данных.

Пример:

// == operator
echo 5 == '5'; // Output: true
// === operator
echo 5 === '5'; // Output: false