
- Главная
- Каталог
- Интернет технологии
- PHP | Вопросы собесов
Статистика канала
GET /api/users?id=10{}
Пример обработки в PHP
$id = $_GET['id']; // Получаем id из URL{}
🟠POST – передача данных в теле запроса
Используется для отправки данных (например, формы).
POST /api/users
Content-Type: application/json
{
"name": "Иван",
"email": "ivan@example.com"
}{}
Пример обработки в PHP
$data = json_decode(file_get_contents("php://input"), true);
echo "Имя: " . $data['name'];{}
🟠PUT, PATCH, DELETE – для обновления и удаления данных
Используются в REST API для изменения или удаления данных.
🚩Форматы ответов (Response Formats)
Сервер отправляет ответ в определённом формате, который клиент сможет распознать.
🟠JSON – самый популярный формат
Используется в API и веб-приложениях.
{
"status": "success",
"message": "Данные получены"
}{}
Пример ответа в PHP
header("Content-Type: application/json");
echo json_encode(["status" => "success", "message" => "Данные получены"]);{}
🟠XML – используется в старых системах
Пример XML-ответа
<response>
<status>success</status>
<message>Данные получены</message>
</response>{}
🟠HTML – если сервер возвращает веб-страницу
Например, при загрузке сайта.
echo "<h1>Привет, мир!</h1>";{}
🟠Текстовый формат (Plain Text)
Если нужен простой текст
header("Content-Type: text/plain");
echo "Привет, это просто текст!";{}
🚩Как сервер определяет формат ответа?
Сервер анализирует заголовок Accept в запросе:
Accept: application/json{}
PHP может обработать это так:
$accept = $_SERVER['HTTP_ACCEPT'];
if (strpos($accept, "application/json") !== false) {
header("Content-Type: application/json");
echo json_encode(["message" => "Привет, JSON!"]);
} else {
echo "Привет, обычный текст!";
}{}
Ставь 👍 и забирай 📚 Базу знанийerror_reporting, set_error_handler)
*Исключения (try-catch, throw)
🟠Традиционная обработка ошибок
PHP изначально использовал механизм ошибок, которые делятся на несколько типов:
E_ERROR – фатальная ошибка, завершает выполнение скрипта.
E_WARNING – предупреждение, но скрипт продолжает выполняться.
E_NOTICE – уведомление о потенциальной проблеме.
echo $undefined_var; // E_NOTICE: Undefined variable{}
🚩Способы обработки ошибок
🟠error_reporting() – управление уровнем ошибок
Функция error_reporting() позволяет включать или выключать определённые типы ошибок.
error_reporting(E_ALL & ~E_NOTICE); // Показывать все ошибки, кроме E_NOTICE{}
🟠set_error_handler() – создание пользовательского обработчика ошибок
Можно задать свою функцию, которая будет реагировать на ошибки.
function myErrorHandler($errno, $errstr, $errfile, $errline) {
echo "Ошибка [$errno]: $errstr в файле $errfile на строке $errline";
}
set_error_handler("myErrorHandler");
// Вызовем ошибку
echo 10 / 0; // Division by zero (E_WARNING){}
🟠error_log() – запись ошибок в файл
Ошибки можно не выводить на экран, а записывать в файл.
error_log("Ошибка: что-то пошло не так!", 3, "errors.log");{}
🚩Исключения (`try-catch`)
С версии PHP 5 появился механизм исключений, который более удобен и структурирован. Исключения позволяют:
Перехватывать ошибки и управлять их обработкой.
Использовать вложенные блоки try-catch для детальной обработки.
Создавать собственные классы исключений.
try {
if (!file_exists("somefile.txt")) {
throw new Exception("Файл не найден");
}
} catch (Exception $e) {
echo "Ошибка: " . $e->getMessage();
}{}
🟠Классы исключений
PHP позволяет использовать предопределённый класс Exception, а также создавать свои.
class MyException extends Exception {}
try {
throw new MyException("Это моя ошибка");
} catch (MyException $e) {
echo "Поймано исключение: " . $e->getMessage();
}{}
🟠Блок `finally`
Используется для выполнения кода в любом случае – независимо от того, было исключение или нет.
try {
echo "Попытка выполнить код\n";
} catch (Exception $e) {
echo "Ошибка поймана\n";
} finally {
echo "Этот код выполнится в любом случае\n";
}{}
Ставь 👍 и забирай 📚 Базу знанийglobal используется в PHP для доступа к глобальным переменным внутри функций.
🚩Как работает `global`?
Доступ к глобальной переменной внутри функции
$counter = 10; // Глобальная переменная
function increment() {
global $counter; // Доступ к глобальной переменной
$counter++;
}
increment();
echo $counter; // ✅ 11{}
Использование нескольких глобальных переменных
$a = 5;
$b = 10;
function sum() {
global $a, $b;
$b = $a + $b; // Меняем глобальную переменную $b
}
sum();
echo $b; // ✅ 15{}
🟠Альтернативный способ – `$GLOBALS`
Можно использовать суперглобальный массив $GLOBALS, который хранит все глобальные переменные.
$x = 3;
$y = 7;
function multiply() {
$GLOBALS['y'] = $GLOBALS['x'] * $GLOBALS['y'];
}
multiply();
echo $y; // ✅ 21{}
🚩Когда `global` – плохая идея?
Глобальные переменные усложняют отладку (их можно случайно изменить).
Функции становятся зависимыми от внешних данных (плохо для тестирования).
Лучше передавать переменные через аргументы функции.
Альтернативный способ (без global)
function increment($counter) {
return $counter + 1;
}
$counter = 10;
$counter = increment($counter);
echo $counter; // ✅ 11{}
Ставь 👍 и забирай 📚 Базу знаний
class Singleton {
private static $instance;
private function __construct() {
// Закрытый конструктор предотвращает создание объекта через new
}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
public function someBusinessLogic() {
// Некоторая бизнес-логика
}
}
// Использование Singleton
$singleton = Singleton::getInstance();
$singleton->someBusinessLogic();{}
Ставь 👍 и забирай 📚 Базу знанийОтзывы канала
Каталог Телеграм-каналов для нативных размещений
PHP | Вопросы собесов — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 2.4K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 5.1, количество отзывов – 0, со средней оценкой 0.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 2097.9 ₽, а за 3 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий