ru
Feedback
PHP | Вопросы собесов

PHP | Вопросы собесов

Открыть в Telegram
2 343
Подписчики
-124 часа
-47 дней
-2430 день
Архив постов
🤔 Какая директива php.ini контролирует максимальное время выполнения скрипта?
Anonymous voting

Как связаны между собой иммутабельность и чистота ? Спросят с вероятностью 7% Иммутабельность и чистота функций тесно связаны в контексте функционального программирования, и их связь можно объяснить через принципы, которые они обеспечивают. Иммутабельность Означает, что объект или структура данных не может быть изменена после создания. Все операции, которые изменяют иммутабельный объект, создают новый объект с новым состоянием, оставляя оригинальный объект неизменным. Чистая функция Это функция, которая удовлетворяет двум основным условиям: 1️⃣Детерминированность: Возвращает одно и то же значение для одних и тех же входных данных. 2️⃣Отсутствие побочных эффектов: Не изменяет состояние программы и не зависит от внешнего состояния, за исключением своих входных параметров. Связь между иммутабельностью и чистотой 1️⃣Отсутствие побочных эффектов: ✅Иммутабельные объекты способствуют созданию чистых функций, так как изменение состояния объектов не приводит к изменению внешнего состояния программы. Это гарантирует, что функции не будут иметь побочных эффектов, поскольку иммутабельные объекты не изменяются после создания. 2️⃣Детерминированность: ✅Использование иммутабельных объектов в чистых функциях способствует детерминированности. Поскольку иммутабельные объекты не меняются, функции, работающие с ними, всегда будут возвращать одно и то же значение для одних и тех же входных данных. Примеры
def add(a, b):
    return a + b

result1 = add(2, 3)  # Всегда возвращает 5
result2 = add(2, 3)  # Всегда возвращает 5
В этом примере функция add является чистой, так как она детерминирована и не имеет побочных эффектов. Пример на Python
from typing import NamedTuple

class Point(NamedTuple):
    x: int
    y: int

p1 = Point(1, 2)
p2 = p1._replace(x=3)

print(p1)  # Point(x=1, y=2)
print(p2)  # Point(x=3, y=2)
В этом примере Point является иммутабельным объектом. Метод _replace создает новый объект, вместо изменения состояния существующего объекта. Практическое значение 1️⃣Предсказуемость и надежность: ✅Иммутабельность и чистота делают код предсказуемым и легким для понимания, тестирования и отладки. Если функции детерминированы и не имеют побочных эффектов, поведение программы становится более предсказуемым. 2️⃣Безопасность в многопоточной среде: ✅В многопоточных приложениях иммутабельные объекты и чистые функции уменьшают риски состояния гонки и других проблем, связанных с конкурентным доступом к данным. 3️⃣Простота тестирования: ✅Чистые функции легко тестировать, так как для одного набора входных данных всегда получается один и тот же результат. Это устраняет необходимость сложных тестовых окружений для проверки побочных эффектов. Иммутабельность и чистота функций тесно связаны, так как такие объекты способствуют созданию чистых функций. Использование этих принципов повышает предсказуемость, надежность и тестируемость кода, а также улучшает безопасность в многопоточных средах. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой метод используется для получения данных из результата запроса в виде ассоциативного массива?
Anonymous voting

Зачем нужны паттерны проектирования ? Спросят с вероятностью 13% Паттерны проектирования (design patterns) — это обобщенные, повторно используемые решения часто встречающихся проблем в программировании. Они предоставляют проверенные способы организации кода, которые помогают разработчикам создавать более гибкие, понятные и поддерживаемые программные системы. Зачем они нужны? 1️⃣Повышение эффективности разработки: ✅Паттерны предлагают готовые решения, которые можно адаптировать под конкретные задачи, сокращая время, необходимое на разработку и проектирование. ✅Они позволяют избежать "изобретения велосипеда", используя уже проверенные подходы. 2️⃣Улучшение читаемости и поддержки кода: ✅Паттерны обеспечивают структурированный подход к написанию кода, что делает его более понятным для других разработчиков. ✅Использование общепринятых паттернов упрощает понимание кода новой командой или при передаче проекта. 3️⃣Обеспечение гибкости и масштабируемости: ✅Паттерны помогают создавать системы, которые легко модифицировать и расширять по мере изменения требований. ✅Они позволяют проектировать системы, устойчивые к изменениям и минимизирующие риск возникновения ошибок при изменении кода. 4️⃣Способствование повторному использованию кода: ✅Паттерны позволяют выделить общие части функционала, которые могут быть использованы в различных частях приложения или даже в разных проектах. ✅Это способствует созданию модульного кода, который можно легко интегрировать в новые проекты. 5️⃣Решение конкретных проблем: ✅Каждый паттерн предназначен для решения определенного типа проблем, таких как управление объектами (Singleton), упрощение сложных API (Facade), или структурирование зависимостей (Dependency Injection). ✅Они обеспечивают проверенные методы для решения этих проблем, снижая вероятность ошибок. Пример Singleton (Одиночка): Гарантирует, что класс имеет только один экземпляр и предоставляет глобальную точку доступа к этому экземпляру.
          class Singleton {
         private static $instance;

         private function __construct() { }

         public static function getInstance() {
             if (self::$instance === null) {
                 self::$instance = new self();
             }
             return self::$instance;
         }
     }

     $singleton = Singleton::getInstance();
Паттерн проектирования нужен для предоставления готовых решений общих проблем, помогают улучшить эффективность разработки, читаемость кода, его поддержку, гибкость и масштабируемость. 👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой тип данных возвращает функция json_decode() в случае успешного декодирования JSON-объекта?
Anonymous voting

Нужна ли на чтение ОРМ ? Спросят с вероятностью 7% Использование Object-Relational Mapping (ORM) для чтения данных имеет свои плюсы и минусы. Необходимость использования ORM для чтения данных зависит от множества факторов, включая требования вашего проекта, производительность, удобство разработки и опыт команды. Плюсы использования 1️⃣Удобство и скорость разработки: ✅ORM абстрагирует сложные SQL-запросы, позволяя работать с базой данных через объекты и методы на уровне кода. Это ускоряет разработку и делает код более понятным и поддерживаемым. 2️⃣Снижение количества кода: ✅ORM автоматически генерирует большинство SQL-запросов, что снижает объем кода и вероятность ошибок. 3️⃣Кросс-платформенность: ✅ORM позволяет использовать один и тот же код для работы с различными СУБД, что упрощает переносимость приложений между разными базами данных. 4️⃣Управление связями и объектами: ✅ORM упрощает работу с ассоциациями и сложными структурами данных, такими как отношения "один ко многим" и "многие ко многим". 5️⃣Автоматическое управление транзакциями и кэшированием: ✅Многие ORM-системы предоставляют встроенные механизмы управления транзакциями и кэшированием, что может улучшить производительность и консистентность данных. Минусы использования 1️⃣Производительность: ✅ORM может генерировать менее оптимальные SQL-запросы по сравнению с вручную написанными запросами. Это может приводить к проблемам производительности, особенно при работе с большими объемами данных. 2️⃣Сложность настройки и обучения: ✅Использование ORM требует определенной настройки и обучения команды разработчиков, особенно если они ранее не работали с данной ORM. 3️⃣Сложные запросы: ✅Для очень сложных запросов может потребоваться ручная оптимизация или написание собственных SQL-запросов, что может уменьшить преимущества использования ORM. 4️⃣Потребление ресурсов: ✅ORM может потреблять больше ресурсов по сравнению с непосредственным использованием SQL-запросов, что может быть критичным для высоконагруженных систем. Когда использоватьПростые и средние по сложности приложения: Для большинства стандартных приложений ORM предоставляет достаточную производительность и удобство использования. ✅Быстрая разработка: Если вам нужно быстро разработать приложение и обеспечить его поддержку, ORM может существенно ускорить процесс. ✅Мультиплатформенные приложения: Если ваше приложение должно работать с разными СУБД, использование ORM может облегчить эту задачу. Когда лучше избегать использованияКритичные к производительности приложения: Если ваше приложение должно обрабатывать большие объемы данных с минимальными задержками, использование собственных SQL-запросов может быть предпочтительным. ✅Сложные и специфические запросы: Если ваша логика требует сложных запросов, которые трудно или невозможно эффективно реализовать с помощью ORM, лучше использовать ручное написание SQL-запросов. ORM может быть очень полезным инструментом для чтения данных, особенно в проектах, где удобство и скорость разработки являются приоритетами. Однако для высоконагруженных систем и сложных запросов ручное написание SQL-запросов может быть более эффективным решением. В конечном счете, выбор подхода зависит от специфики вашего проекта и требований к производительности и удобству разработки. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какая функция в PHP используется для изменения режима блокировки потока?
Anonymous voting

❓Если вам интересно - Почему батчевые update могут вызывать дедлоки - Что делать, если одни и те же данные нужны в нескольких сервисах - Как эффективно осуществлять пагинацию, когда записей очень много ✅ То подписывайтесь на канал Senior Backend разработчика с авторскими статьями про проектирование, архитектуру, базы данных

Как браузер понимает, что ему нужно перейти куда-то ? Спросят с вероятностью 13% Браузер понимает, что ему нужно перейти куда-то, благодаря взаимодействию с пользователем и обработке команд, содержащихся в веб-документах и адресной строке. Процесс перехода к новому ресурсу в браузере можно объяснить следующими этапами: 1️⃣Ввод URL или выбор ссылкиВвод: Пользователь вводит адрес веб-страницы (URL) в адресной строке браузера и нажимает Enter. ✅Клик по ссылке: Пользователь нажимает на гиперссылку (тег <a href="...">) на веб-странице. ✅Форма: Пользователь отправляет форму (теги <form> с методами GET или POST). 2️⃣Обработка события Браузер обрабатывает событие (например, нажатие клавиши Enter или клик по ссылке) и определяет, что нужно загрузить новый ресурс. 3️⃣Формирование HTTP-запроса Браузер формирует запрос для запрашиваемого ресурса: ✅Метод запроса: Обычно это GET для URL и ссылок, или POST для форм. ✅URL: Введенный пользователем адрес или URL, указанный в атрибуте href ссылки. ✅Заголовки: Стандартные заголовки HTTP, такие как User-Agent, Accept, и другие. 4️⃣Отправка HTTP-запроса Браузер отправляет сформированный запрос на сервер, используя IP-адрес, полученный через систему доменных имен (DNS). 5️⃣Получение HTTP-ответа Сервер обрабатывает запрос и возвращает HTTP-ответ, который может содержать: ✅Статусный код: Указывает на результат запроса (например, 200 OK, 404 Not Found). ✅Заголовки: Метаданные, такие как тип содержимого (Content-Type), длина содержимого (Content-Length), и другие. ✅Тело ответа: HTML-документ, JSON данные, изображения или другие ресурсы. 6️⃣Обработка и рендеринг Браузер обрабатывает полученный HTTP-ответ: ✅Анализ: Браузер анализирует HTML-код, создавая дерево DOM (Document Object Model). ✅Запрос дополнительных ресурсов: Находя ссылки на дополнительные ресурсы (CSS, JavaScript, изображения), браузер отправляет дополнительные HTTP-запросы. ✅Рендеринг страницы: Браузер применяет стили и выполняет скрипты, чтобы отобразить веб-страницу пользователю. Пример на HTML и JavaScript HTML ссылка:
<a href="https://example.com">Перейти на Example.com</a>
Когда пользователь кликает на эту ссылку, браузер понимает, что ему нужно сделать запрос к URL https://example.com. Форма:
<form action="https://example.com/submit" method="post">
  <input type="text" name="username">
  <input type="submit" value="Отправить">
</form>
Когда пользователь отправляет эту форму, браузер делает POST-запрос к https://example.com/submit с данными формы. Браузер понимает, что ему нужно перейти куда-то, когда пользователь вводит URL, нажимает на ссылку или отправляет форму. Браузер отправляет HTTP-запрос к указанному ресурсу и обрабатывает полученный ответ для отображения новой веб-страницы. 👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Что произойдет при вызове функции header() после вывода текста в PHP?
Anonymous voting

Что такое паттерн event sourcing, когда его нужно использовать ? Спросят с вероятностью 7% Event Sourcing — это паттерн проектирования, в котором все изменения состояния приложения сохраняются как последовательность событий. Вместо хранения текущего состояния объекта в базе данных, система сохраняет все события, которые привели к этому состоянию. Текущее состояние может быть восстановлено путем последовательного воспроизведения этих событий. Основные принципы 1️⃣Сохранение событий: ✅Каждое изменение состояния системы сохраняется как событие. Эти события записываются в журнал событий (event store). 2️⃣Воспроизведение состояния: ✅Текущее состояние системы может быть восстановлено путем последовательного применения событий из журнала. Это делает систему детерминированной и позволяет восстанавливать состояние в любой момент времени. 3️⃣Непосредственность: ✅События являются источником истины для системы. Любые изменения состояния происходят только через события. Представим пример системы управления банковскими счетами. Вместо хранения текущего баланса на счету, система будет сохранять каждую транзакцию как событие. ✅DepositMade { amount: 100 }WithdrawalMade { amount: 50 } Для восстановления текущего баланса, система просто воспроизводит все события: ✅Начальный баланс: 0 ✅Применение DepositMade { amount: 100 }: Баланс становится 100 ✅Применение WithdrawalMade { amount: 50 }: Баланс становится 50 Когда использовать 1️⃣Сложные бизнес-логики: ✅Event Sourcing подходит для систем с сложной бизнес-логикой и многочисленными правилами, где важно отслеживать все изменения состояния и причины этих изменений. 2️⃣Аудит и трассировка: ✅Когда необходимо обеспечить полный аудит и возможность воспроизведения всех изменений системы для целей соответствия или аналитики. 3️⃣Гибкость и возможность отката: ✅В системах, где необходимо легко откатывать изменения или перематывать состояние до определенного момента времени. 4️⃣Реализация CQRS (Command Query Responsibility Segregation): ✅Event Sourcing часто используется вместе с паттерном CQRS, где чтение и запись данных разделены на разные модели. Примеры 1️⃣Финансовые системы: ✅Банковские системы, системы управления активами, бухгалтерские системы, где важна точность и возможность аудита всех транзакций. 2️⃣Историческое ведение данных: ✅Системы, где важно сохранять всю историю изменений данных, например, в системах управления проектами или системах управления конфигурацией. 3️⃣Игровые системы: ✅Онлайн-игры, где необходимо отслеживать все действия игроков и состояние игры. Преимущества 1️⃣Полный аудит: ✅Возможность отслеживать и проверять каждое изменение состояния системы. 2️⃣Историческое воспроизведение: ✅Возможность воспроизводить состояние системы на любой момент времени. 3️⃣Гибкость и адаптивность: ✅Возможность добавлять новые функциональные возможности, анализируя и обрабатывая существующие события. Недостатки 1️⃣Сложность реализации: ✅Реализация Event Sourcing требует значительных усилий и тщательного проектирования. 2️⃣Объем данных: ✅Хранение всех событий может занимать значительное количество места в базе данных. 3️⃣Сложность в понимании: ✅Требуется определенная подготовка и понимание концепций для эффективного использования паттерна. Event Sourcing — это мощный паттерн проектирования, который подходит для систем, требующих полного аудита и гибкости в управлении состоянием. Он обеспечивает детерминированность и прозрачность изменений состояния, но также требует тщательной реализации и управления объемом данных. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой метод возвращает количество строк, затронутых последним SQL-запросом?
Anonymous voting

Как расшифровывается Rest ? Спросят с вероятностью 13% REST расшифровывается как "Representational State Transfer" (Представительный перенос состояния). Этот архитектурный стиль был предложен Роем Филдингом в его докторской диссертации в 2000 году и является основой для современных веб-сервисов. ОбъяснениеRepresentational (Представительный): В нем ресурсы представляются в виде определённых форматов данных (представлений), таких как JSON, XML, HTML и др. Это означает, что клиент взаимодействует с представлениями ресурсов, а не с самими ресурсами напрямую. ✅State (Состояние): RESTful взаимодействие является безсостоящим (stateless), что означает, что каждый запрос от клиента к серверу должен содержать всю необходимую информацию для его обработки. Сервер не сохраняет состояние между запросами, что упрощает масштабирование и обработку запросов. ✅Transfer (Перенос): Описывает, как передавать представления состояния между клиентом и сервером. Клиенты делают запросы к определённым ресурсам, а сервер отвечает с соответствующими представлениями этих ресурсов. Основные принципы 1️⃣Клиент-серверная архитектура: Клиенты и серверы отделены друг от друга, что позволяет им развиваться независимо. 2️⃣Безсостоящие взаимодействия: Каждый запрос от клиента к серверу должен быть самодостаточным и содержать всю необходимую информацию для его обработки. 3️⃣Кэшируемость: Ответы от сервера могут быть кэшируемыми, что улучшает производительность и снижает нагрузку на сервер. 4️⃣Единообразие интерфейса: Определённые правила и соглашения, которые упрощают взаимодействие между клиентами и серверами, делая API предсказуемым и понятным. 5️⃣Многоуровневая система: Архитектура может быть многоуровневой для улучшения масштабируемости и надёжности. 6️⃣Код по требованию (опционально): Сервер может расширять функциональность клиента, предоставляя исполняемый код (например, JavaScript). Предположим, у нас есть RESTful API для управления пользователями: ✅GET /users: Получить список всех пользователей. ✅GET /users/{id}: Получить информацию о конкретном пользователе по его идентификатору. ✅POST /users: Создать нового пользователя. ✅PUT /users/{id}: Обновить информацию о пользователе по его идентификатору. ✅DELETE /users/{id}: Удалить пользователя по его идентификатору. Каждый из этих запросов выполняет определённое действие на ресурсе пользователя, используя стандартные HTTP методы. REST расшифровывается как "Representational State Transfer" и представляет собой архитектурный стиль для создания веб-сервисов, в котором используется стандартный набор HTTP методов для взаимодействия с ресурсами. 👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой тип исключений выбрасывает PDO при ошибке?
Anonymous voting

Когда имеет смысл использовать event sourcing ? Спросят с вероятностью 7% Event Sourcing — это мощный паттерн, который находит применение в специфических контекстах и системах. Ниже рассмотрены основные сценарии, когда имеет смысл использовать Event Sourcing: Когда использовать 1️⃣Сложная бизнес-логика и необходимость точного аудита: ✅Финансовые системы: Банковские и бухгалтерские системы, где необходимо отслеживать каждую транзакцию и иметь возможность восстановления состояния на любой момент времени для аудита и отчетности. ✅Коммерческие приложения: Интернет-магазины, где важно отслеживать все изменения в заказах, инвентаризации и оплатах для целей аудита и аналитики. 2️⃣Историческое ведение данных: ✅Проектные системы и системы управления конфигурацией: Системы, которые должны хранить полную историю изменений, например, системы управления версиями или трекинг-системы. ✅Системы CRM: Управление клиентами и продажами, где нужно отслеживать каждое взаимодействие с клиентами. 3️⃣Гибкость и адаптивность: ✅Гибкость в изменениях требований: В системах, где часто меняются бизнес-требования, и необходимо адаптировать логику без потери данных. Возможность воспроизводить состояние на любой момент времени помогает в тестировании и отладке новых функций. 4️⃣Поддержка отказоустойчивости и восстановления: ✅Многопользовательские онлайн-системы: Игры, социальные сети, где важно сохранять все действия пользователей и иметь возможность восстановления системы после сбоев. 5️⃣CQRS (Command Query Responsibility Segregation): ✅Event Sourcing часто используется вместе с CQRS, где чтение и запись данных разделены. Это позволяет оптимизировать каждый аспект системы независимо, повышая производительность и масштабируемость. Примеры 1️⃣Банковские системы: ✅Отслеживание всех финансовых транзакций и возможность детального аудита. 2️⃣Игровые системы: ✅Сохранение всех действий игроков для воспроизведения игровых сессий, анализа и восстановления данных. 3️⃣Системы управления проектами: ✅Сохранение всех изменений задач, времени выполнения и комментариев для точного аудита и отчетности. 4️⃣Интернет-магазины: ✅Отслеживание всех изменений заказов, статусов и инвентаря для целей аналитики и отчетности. Преимущества: 1️⃣Полный аудит: Возможность отслеживать каждое изменение системы и восстанавливать состояние на любой момент времени. 2️⃣Гибкость: Легкость адаптации системы к новым требованиям без потери данных. 3️⃣Безопасность данных: Возможность восстановления после сбоев и атак. Недостатки: 1️⃣Сложность реализации: Высокие затраты на проектирование и реализацию системы. 2️⃣Объем данных: Необходимость хранения большого объема событий, что может требовать значительных ресурсов. 3️⃣Потребность в обучении: Необходимость обучения команды разработчиков новым подходам и инструментам. Event Sourcing имеет смысл использовать в системах с высокими требованиями к аудиту, гибкости, отказоустойчивости и историческому ведению данных. Этот паттерн позволяет создавать системы, которые легко адаптируются к изменениям и обеспечивают высокую степень надежности и прозрачности данных. Однако, он требует значительных ресурсов на реализацию и управление, поэтому его применение должно быть тщательно обосновано. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой метод используется для привязки параметров в PDOStatement?
Anonymous voting

Чем отличается get от post'а ? Спросят с вероятностью 13% GET и POST — это два основных метода HTTP, используемых для отправки данных с клиента на сервер в веб-приложениях. Они имеют разные характеристики и предназначены для различных задач. Основные отличия: 1️⃣Способ передачи данныхGET: Данные передаются через URL в строке запроса. Например:
     http://example.com/page?param1=value1&param2=value2
     
POST: Данные передаются в теле HTTP-запроса, а не в URL. Например:
     POST /page HTTP/1.1
     Host: example.com
     Content-Type: application/x-www-form-urlencoded
     
     param1=value1&param2=value2
     
2️⃣Размер передаваемых данныхGET: Ограничен длиной URL (обычно до 2048 символов в большинстве браузеров), что делает его непригодным для передачи больших объемов данных. ✅POST: Может передавать большие объемы данных, так как данные отправляются в теле запроса и не ограничены длиной URL. 3️⃣БезопасностьGET: Менее безопасен, так как данные видны в URL и могут быть сохранены в истории браузера или логах сервера. Это может привести к утечке конфиденциальной информации. ✅POST: Более безопасен, так как данные передаются в теле запроса и не видны в URL. Однако для полной безопасности необходимо использовать HTTPS. 4️⃣Идемпотентность и кэшированиеGET: Идемпотентен, что означает, что повторные запросы не изменяют состояние сервера (например, при повторном запросе страницы результат будет тот же). GET-запросы могут кэшироваться браузерами и прокси-серверами. ✅POST: Не идемпотентен, что означает, что повторные запросы могут привести к разным результатам (например, многократная отправка формы может привести к созданию нескольких записей). POST-запросы обычно не кэшируются. 5️⃣ПрименениеGET: Используется для получения данных с сервера (например, загрузка веб-страниц, запрос информации). Идеален для запросов, которые не изменяют состояние сервера. ✅POST: Используется для отправки данных на сервер для создания или обновления ресурсов (например, отправка форм, загрузка файлов). Идеален для запросов, которые изменяют состояние сервера. Примеры GET:
<!DOCTYPE html>
<html>
<body>

<form action="/search" method="get">
  <input type="text" name="query">
  <input type="submit" value="Search">
</form>

</body>
</html>
В этом примере запрос на /search с параметром query будет отправлен через URL, например: http://example.com/search?query=example. POST:
<!DOCTYPE html>
<html>
<body>

<form action="/submit" method="post">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit" value="Submit">
</form>

</body>
</html>
В этом примере запрос на /submit будет отправлен с параметрами username и password в теле запроса. GET передает данные через URL и используется для получения данных, в то время как POST передает данные в теле запроса и используется для отправки данных на сервер для их обработки. 👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой метод используется для выполнения подготовленного запроса в PDO?
Anonymous voting

Какая разница между замыканием в PHP и JavaScript ? Спросят с вероятностью 7% Замыкания (closures) имеют много общего, так как обе языки поддерживают эту концепцию, но их реализация и некоторые аспекты использования могут отличаться. Давайте рассмотрим, что такое замыкания и как они работают в этих двух языках. Замыкания в PHP Это анонимная функция, которая может захватывать переменные из своей окружающей области видимости. Эта функция может использовать эти переменные даже после того, как область видимости, в которой они были определены, закончила своё выполнение.
function makeCounter() {
    $count = 0;
    return function() use (&$count) {
        return ++$count;
    };
}

$counter = makeCounter();
echo $counter(); // Выведет 1
echo $counter(); // Выведет 2
В этом примере анонимная функция использует переменную $count из окружающей области видимости, сохраняя её значение между вызовами. Основные особенности замыканий: 1️⃣Использование ключевого слова `use`: ✅Для захвата переменных из окружающей области видимости используется ключевое слово use. Переменные могут быть захвачены по значению или по ссылке (используя &). 2️⃣Лексическое замыкание: ✅Замыкания в PHP могут захватывать переменные, доступные в лексической области видимости, в момент определения функции. Замыкания в JavaScript Это функция, которая захватывает переменные из своей окружающей области видимости и сохраняет их для дальнейшего использования. Эти переменные остаются доступными даже после завершения выполнения области видимости, в которой они были определены.
function makeCounter() {
    let count = 0;
    return function() {
        return ++count;
    };
}

const counter = makeCounter();
console.log(counter()); // Выведет 1
console.log(counter()); // Выведет 2
В этом примере внутренняя функция захватывает переменную count из окружающей области видимости, сохраняя её значение между вызовами. Основные особенности замыканий в JavaScript: 1️⃣Автоматическое замыкание: ✅В JavaScript замыкания создаются автоматически, без необходимости использования специального синтаксиса (например, ключевого слова use в PHP). 2️⃣Лексическое замыкание: ✅Как и в PHP, замыкания захватывают переменные из лексической области видимости, в которой они были определены. Сравнение 1️⃣Синтаксис и использование: ✅Для захвата переменных из окружающей области видимости используется ключевое слово use. Захват переменных происходит автоматически. ✅Пример PHP: function() use ($var) { ... } ✅Пример JavaScript: function() { ... } 2️⃣Область видимости и контекст: ✅Захватывают переменные по значению или по ссылке. Захватывают переменные по значению. ✅Часто используются с контекстом this, что может приводить к сложности при работе с методами объектов. 3️⃣Функциональность и гибкость: ✅Оба языка предоставляют мощные возможности для создания замыканий, но JavaScript часто используется для создания асинхронных операций и работы с событиями, что делает замыкания особенно полезными в этом контексте. ✅В PHP замыкания используются для создания гибких и модульных приложений, особенно в контексте анонимных функций и колбэков. Замыкания выполняют аналогичные функции, позволяя захватывать переменные из окружающей области видимости и сохранять их для последующего использования. Основное отличие заключается в синтаксисе и некоторых особенностях реализации: используется ключевое слово use для захвата переменных, а они создаются автоматически. Независимо от языка, замыкания являются мощным инструментом для создания модульного и гибкого кода. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🤔 Какой метод используется для начала транзакции в PDO?
Anonymous voting