Библиотека собеса по PHP | вопросы с собеседований
3.18K subscribers
180 photos
5 videos
118 links
Вопросы с собеседований по PHP и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/9f3affba

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Есть ли разница между одинарными и двойными кавычками?

Да, есть

Двойные кавычки: Внутри двойных кавычек PHP разбирает переменные и экранирует специальные символы, такие как новая строка (\n) или символы управления (например, \t для табуляции).

Одинарные кавычки: Внутри одинарных кавычек PHP не разбирает переменные и не экранирует специальные символы, кроме одиночного обратного слэша.

Поэтому, в тех случаях когда в вашей строке заведомо не используются специальные символы и переменные следует использовать именно одинарные, так как это повышает скорость выполнения, поскольку избавляет PHP от необходимости парсить строку
3😢1🥱1
Что означает одиночное наследование в PHP?

Одиночное наследование в PHP означает возможность класса наследовать свойства и методы только от одного родительского класса. Другими словами, дочерний класс может иметь только один прямой родительский класс, от которого он наследует. Это в отличие от множественного наследования, где класс может наследовать от нескольких родительских классов.

В PHP одиночное наследование применяется самим языком. Когда класс расширяет другой класс с использованием ключевого слова extends, устанавливается отношение родитель-потомок, и дочерний класс наследует все неприватные свойства и методы родительского класса.

В целом, можно сказать, что для компенсации отсутствия множественного наследования в PHP используются интерфейсы и трейты.
Какие HTTP-методы знаете?

Веб-протокол HTTP (Hypertext Transfer Protocol) определяет различные методы запросов, которые клиенты могут отправлять серверу для выполнения определенных операций. Некоторые из наиболее распространенных HTTP-методов:

GET: Получить данные с сервера. Этот метод используется для запроса содержимого указанного ресурса.

POST: Отправить данные на сервер для обработки. Обычно используется для отправки данных формы или для выполнения какой-то операции на сервере, которая может изменить состояние сервера или добавить новые данные.

PUT: Заменить все текущие представления ресурса данными запроса. Используется для создания или обновления ресурса на сервере.

DELETE: Удалить указанный ресурс с сервера.

PATCH: Изменить часть ресурса на сервере. Используется для частичного обновления ресурса.

HEAD: Получить заголовки, которые будут отправлены при GET-запросе на указанный ресурс. Этот метод полезен, когда клиенту нужны только заголовки, а не фактическое содержимое.

OPTIONS: Получить информацию о возможностях сервера относительно ресурса или сервера в целом. Это может включать доступные методы, поддерживаемые заголовки и другую метаинформацию.

TRACE: Используется для тестирования соединения между клиентом и сервером. Когда сервер получает запрос TRACE, он возвращает весь запрос обратно клиенту, что позволяет клиенту увидеть, как запрос проходит через промежуточные узлы.

CONNECT: Используется для установки виртуального соединения с сервером, обеспечивая прозрачное шифрование SSL через промежуточный узел.
👍4
Как использовать компонент Symfony Console для создания пользовательской команды?

Чтобы создать пользовательскую команду в компоненте Symfony's Console, вам сначала нужно создать новый PHP-класс, который расширяет класс Command. Этот класс должен быть расположен в каталоге bundle. В этом классе настройте имя команды, аргументы и опции в методе configure(). Реализуйте логику команды в методе execute().

После создания команды зарегистрируйте ее как сервис, пометив console.command в файле конфигурации сервисов. Теперь вы можете запускать команду из консоли, используя ее имя, заданное в $defaultName.
📕Делаем тонкие контроллеры на Symfony. Валидация - PHP-разработчикам; Junior/Middle разработчикам, строящим API на Symfony; начинающим специалистам в асинхронной архитектуре

На открытом уроке 5 ноября в 20:00 мск мы разберёмся в принципах и методах разработки тонких контроллеров:

📗 На вебинаре:
1. Получите практические примеры построения эффективной архитектуры приложения.
2. Познакомитесь с базовыми механизмами валидации.

📘 В результате на практике изучите и освоите создание собственных constraint, а также сможете централизованно обрабатывать ошибки с помощью EventDispatcher/EventListener.

👉 Регистрация на урок и подробности о курсе Symfony Framework: https://otus.pw/gd2Ua/

Все участники открытого урока получат скидку на курс "Symfony Framework"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Как можно получить свойства изображения в PHP?

getimagesize() — используется для получения размера изображения.
exif_imagetype() — используется для получения типа изображения.
imagesx() — используется для получения ширины изображения.
imagesy() — используется для получения высоты изображения.
👍1
[Git]Какой командой можно влить комит в текущую ветку?

Чтобы влить коммит в текущую ветку, используется команда git cherry-pick. Эта команда позволяет перенести один или несколько коммитов из другой ветки или из истории на текущую ветку. Вот как это делается:

1. Определите хэш коммита, который вы хотите влить:

git log

Найдите нужный коммит и скопируйте его хэш.

2. Выполните команду cherry-pick:

git cherry-pick 


Если вам нужно влить несколько коммитов, вы можете указать диапазон:

git cherry-pick ^..


Или перечислить несколько хэшей:

git cherry-pick   


После выполнения cherry-pick, изменения из выбранных коммитов будут добавлены в вашу текущую ветку.

Дополнительные моменты:
Если возникнут конфликты при выполнении git cherry-pick, Git остановится и предложит вам их разрешить. После разрешения конфликтов выполните:
git cherry-pick --continue


Если вы передумали в процессе выполнения cherry-pick, вы можете отменить операцию с помощью:
git cherry-pick --abort
👍2
Какая система типов используется в PHP? Опишите плюсы и минусы.

В PHP используется динамическая система типов, что означает, что тип переменной определяется во время выполнения программы и может изменяться в процессе работы. Вот некоторые плюсы и минусы такой системы типов:

Плюсы:

✔️Гибкость: Динамическая типизация делает PHP очень гибким языком программирования, позволяя быстро писать и изменять код.

✔️Простота использования: Не нужно явно объявлять типы переменных, что упрощает написание кода, особенно для новичков.

✔️Легкость внесения изменений: Поскольку типы переменных могут быть изменены в любой момент, изменение структуры данных или логики программы может быть более легким и менее разрушительным.

✔️Меньше кода: Нет необходимости явно приводить типы или выполнять проверки на соответствие типов, что может сократить объем кода.

Минусы:

Потенциальные ошибки времени выполнения: Поскольку типы определяются во время выполнения, ошибки, связанные с несоответствием типов, могут возникнуть только во время выполнения программы, что может затруднить их обнаружение и отладку.

Уменьшение производительности: Проверка типов во время выполнения может негативно сказаться на производительности приложения, особенно в больших и сложных проектах.

Меньшая надежность: Поскольку типы переменных могут изменяться во время выполнения, это может привести к неожиданному поведению программы и усложнить ее понимание и поддержку.

Трудности в документации и отладке: Из-за динамической типизации может быть сложно определить типы переменных и их ожидаемое поведение, что может затруднить документирование кода и отладку ошибок.
1😁1
Что такое замыкание в PHP и как их использовать?

В PHP замыкание — это способ создания анонимных функций. Они позволяют определять функции встроенным образом, не присваивая им конкретное имя. Замыкания особенно полезны для задач, таких как обратные вызовы, обработка событий и передача функций в качестве аргументов в функции более высокого порядка.

Замыкания также могут захватывать переменные из окружающей области видимости, делая их мощными инструментами для создания гибкого и переиспользуемого кода. Это известно как «захват переменных».

Также можно использовать замыкания в качестве функций обратного вызова для функций массива, таких как array_map(), array_filter() и т. д., или для итерации с использованием foreach. Это может сделать ваш код более кратким и выразительным.