PHP интервью вопросы и ответы
-
Что такое OOP в PHP?
OOP (Object-Oriented Programming) в PHP — это парадигма программирования, которая позволяет создавать объекты, используя классы. Основные концепции включают классы, объекты, наследование, полиморфизм, абстракцию и связывание.
-
Какие есть способы реализации наследования в PHP?
Наследование в PHP можно реализовать с помощью ключевого слова extends
. Это позволяет создавать новые классы на основе существующих классов, наследуя их свойства и методы.
-
Что такое PDO в PHP?
PDO (PHP Data Objects) — это расширение PHP, которое позволяет работать с базами данных. Оно предоставляет объектно-ориентированный интерфейс для работы с различными типами баз данных, обеспечивая портабельность кода.
-
Что такое MVC в PHP?
MVC (Model-View-Controller) — это архитектурный шаблон, который используется для разработки веб-приложений. Он разделяет приложение на три компонента:
-
Model — управляет данными и бизнес-логикой.
-
View — отвечает за отображение данных.
-
Controller — обрабатывает пользовательский ввод и управляет взаимодействием между Model и View.8. Какие есть способы реализации REST API в PHP?
REST API в PHP можно реализовать с помощью различных фреймворков, таких как Slim, Silex или Laravel. Эти фреймворки предоставляют удобные инструменты для создания RESTful API, включая маршрутизацию, обработку запросов и ответов.
-
Что такое Composer в PHP?
Composer — это менеджер зависимостей для PHP, который позволяет удобно управлять библиотеками и пакетами, используемыми в проекте. Он автоматизирует процесс установки и управления зависимостями.10. Что такое автозагрузка в PHP?
Автозагрузка в PHP — это механизм, который позволяет автоматически загружать классы при их использовании. Это упрощает управление зависимостями и позволяет избежать необходимости вручную подключать каждый класс. Эти ответы должны помочь вам подготовиться к собеседованию по PHP и ответить на типичные вопросы, которые могут возникнуть.
Объединяя фактические вопросы PHP-собеседования, я собрал вопросы, с которыми я столкнулся, а также вопросы, с которыми столкнулись другие люди в интернете, и пытался предоставить краткие и точные ответы.
Включает в себя сегменты сетевой архитектуры, структуры данных и алгоритмы, PHP, веб-технологии, MySQL, Redis, Linux, безопасность, паттерны проектирования, архитектуру и т.д.
Этот репозиторий будет продолжать обновляться, форк не увидит последних изменений, рекомендуется Watch или Star ~~
Процесс собеседования

Группа WeChat
Сканируйте QR-код для добавления в WeChat, укажите: PIQA
, иногда я могу быть занят, подождите немного

Список вопросов### Сетевые протоколы
- [Основные характеристики UDP](. /docs/01. сети/QA. md#основные-характеристики-udp)
- [Основные характеристики TCP](. /docs/01. сети/QA. md#основные-характеристики-tcp)
- [Краткое описание трехуказательного рукопожатия для установления TCP-соединения](. /docs/01. сети/QA. md#краткое-описание-трехуказательного-рукопожатия-для-установления-tcp-соединения)
- [Почему при установлении TCP-соединения необходимо отправить подтверждение в конце](. /docs/01. сети/QA. md#почему-при-установлении-tcp-соединения-необходимо-отправить-подтверждение-в-конце)
- [Краткое описание освобождения TCP-соединения](. /docs/01. сети/QA. md#краткое-описание-освобождения-tcp-соединения)
- [Что такое TIME-WAIT и почему необходимо ждать 2МЛС](. /docs/01. сети/QA. md#что-такое-time-wait-и-почему-необходимо-ждать-2mls)
- [Проблема TCP-склеивания](. /docs/01. сети/QA. md#проблема-tcp-склеивания)
- [Различия между UDP и TCP, а также их применение](. /docs/01. сети/QA. md#различия-между-udp-и-tcp-а-также-их-применение)
- [Необходимые шаги для создания сокета](. /docs/01. сети/QA. md#необходимые-шаги-для-создания-сокета)
- [Основная роль DNS](. /docs/01. сети/QA. md#основная-роль-dns)
- [Структура HTTP-сообщения](. /docs/01. сети/QA. md#структура-http-сообщения)
- [HTTP-коды состояния](. /docs/01. сети/QA. md#http-коды-состояния)
- [Часто используемые HTTP-методы](. /docs/01. сети/QA. md#часто-используемые-http-методы)- [Преимущества и недостатки HTTP](. /docs/01. сети/QA.md#преимущества-и-недостатки-http)
- [Принципы работы HTTPS](. /docs/01. сети/QA.md#принципы-работы-https)
- [HTTP 2.0](. /docs/01. сети/QA.md#http-2.0)
- [Различия между IPv6 и IPv4](. /docs/01. сети/QA.md#различия-между-ipv6-и-ipv4)
- [Что такое механизм пульса](. /docs/01. сети/QA.md#что-такое-механизм-пульса)
- [Что такое долгосрочное соединение](. /docs/01. сети/QA.md#что-такое-долгосрочное-соединение)### Структуры данных и алгоритмы- Критерии оценки и сравнения алгоритмов
- Какие бывают списки
- Линейные структуры данных
- Деревья
- Хеширование и поиск
- Сортировка
-
Другое### PHP- [echo、print、print_r、var_dump различия](. /docs/03. PHP/QA. md#echoprintprint_rvar_dump-различия)
- [одинарные и двойные кавычки различия](. /docs/03. PHP/QA. md#одинарные-и-двойные-кавычки-различия)
- [isset и empty различия](. /docs/03. PHP/QA. md#isset-и-empty-различия)
- [static、self、$this различия](. /docs/03. PHP/QA. md#staticselfthis-различия)
- [include、require、include_once、require_once различия](. /docs/03. PHP/QA. md#includerequireinclude_oncerequire_once-различия)
- [функции обработки массивов](. /docs/03. PHP/QA. md#функции-обработки-массивов)
- [Cookie и Session](. /docs/03. PHP/QA. md#cookie-и-session)
- [предопределенные переменные](. /docs/03. PHP/QA. md#предопределенные-переменные)
- [передача значений и передача по ссылке различия](. /docs/03. PHP/QA. md#передача-значений-и-передача-по-ссылке-различия)
- [конструктор и деструктор](. /docs/03. PHP/QA. md#конструктор-и-деструктор)
- [магические методы](. /docs/03. PHP/QA. md#магические-методы)
- [public、protected、private、final различия](. /docs/03. PHP/QA. md#publicprotectedprivatefinal-различия)
- [клиентский/серверный IP получение, понимание прокси-трансляции реального IP](. /docs/03. PHP/QA. md#клиентский-и-серверный-ip-получение-понимание-прокси-трансляции-реального-ip)
- [статический вызов класса и вызов по экземпляру](. /docs/03. PHP/QA. md#статический-вызов-класса-и-вызов-по-экземпляру)
- [PHP без экземпляра вызов метода](. /docs/03. PHP/QA. md#php-без-экземпляра-вызов-метода)
- [php. ini конфигурационные опции](. /docs/03. PHP/QA. md#phpini-конфигурационные-опции)
- [php-fpm. conf конфигурация](. /docs/03. PHP/QA. md#php-fpmconf-конфигурация)
- [502、504 ошибки причины и способы решения](. /docs/03. PHP/QA. md#502-504-ошибки-причины-и-способы-решения)PHP/QA.md#502504-ошибки-причины-и-способы-решения
- как вернуть 301 перенаправление
- PHP и MySQL соединение методы
- MySQL, MySQLi, PDO различия
- MySQL соединение бассейн
- процесс выполнения кода
- principio de codificación base64
- реализация ip2long
- понимание MVC
- особенности популярных PHP фреймворков
- объектно-реляционное отображение/ORM
Веб-раздел
- SEO что следует учитывать
- img теги title и alt чем отличаются
- CSS селекторы классификация
- CSS спрайты что это, преимущества и недостатки
- display: none и visibility: hidden чем отличаются
- display: block и display: inline чем отличаются
- CSS файлы, style теги, inline style атрибуты приоритет
- link и @import чем отличаются
-
бокс-модель - [как очистить контейнер, содержащий несколько элементов float](. /docs/04. Web/QA. md#容器包含若干浮动元素时如何清理浮动)
- [как центрировать элемент по горизонтали](. /docs/04. Web/QA. md#如何水平居中一个元素)
- [как центрировать элемент по вертикали](. /docs/04. Web/QA. md#如何竖直居中一个元素)
- [flex и CSS бокс-модель чем отличаются](. /docs/04. Web/QA. md#flex-与-css-盒子模型有什么区别)
- [position атрибут](. /docs/04. Web/QA. md#position-属性)
- [PNG, GIF, JPG чем отличаются и как выбрать](. /docs/04. Web/QA. md#pnggifjpg-的区别及如何选)
- [почему JavaScript файлы помещают в нижней части HTML](. /docs/04. Web/QA. md#为什么把-javascript-文件放在-html-底部)
- [JavaScript данные типы](. /docs/04. Web/QA. md#javascript-数据类型)
- [JavaScript DOM операции методы](. /docs/04. Web/QA. md#javascript-操作-dom-的方法有哪些)
- [JavaScript строки методы](. /docs/04. Web/QA. md#javascript-字符串方法有哪些)
- [JavaScript строки извлечение методы чем отличаются](. /docs/04. Web/QA. md#javascript-字符串截取方法有哪些有什么区别)
- [setTimeout и setInterval чем отличаются](. /docs/04. Web/QA. md#settimeout-和-setinterval-的区别)
- [использование new оператора для создания объекта шаги](. /docs/04. Web/QA. md#使用-new-操作符实例化一个对象的具体步骤)
- [как реализовать AJAX запрос](. /docs/04. Web/QA. md#如何实现-ajax-请求)
- [same-origin политика что это](. /docs/04. Web/QA. md#同源策略是什么)
- [как решить проблему cross-origin](. /docs/04. Web/QA. md#如何解决跨域问题)
- [Что такое операции, вызывающие утечку памяти](. /docs/04. Web/QA. md#что-такое-операции-вызывающие-утечку-памяти)
- [Понимание и применение замыканий](. /docs/04. Web/QA. md#理解与使用闭包)md#понимание-и-применение-замыканий)
- [Понимание прототипов в JavaScript](. /docs/04. Web/QA.md#понимание-прототипов-в-javascript)
- [Понимание модульного подхода в JavaScript](. /docs/04. Web/QA.md#понимание-модульного-подхода-в-javascript)
- [Как определить успешную или неудачную загрузку изображений на веб-странице](. /docs/04. Web/QA.md#как-определить-успешную-или-неудачную-загрузку-изображений-на-веб-странице)
- [Как реализовать ленивую загрузку](. /docs/04. Web/QA.md#как-реализовать-ленивую-загрузку)
- [Принцип работы JSONP](. /docs/04. Web/QA.md#принцип-работы-jsonp)
- [Чтение и запись Cookie](. /docs/04. Web/QA.md#чтение-и-запись-cookie)
- Шаги от ввода URL в адресной строке браузера до отображения страницы
- [Принцип двустороннего связывания в Vue.js](. /docs/04. Web/QA.md#принцип-двустороннего-связывания-в-vuejs)
- Как оптимизировать производительность веб-сайта
- [Прогрессивное улучшение](. /docs/04. Web/QA.md#прогрессивное-улучшение)
Безопасность
-
Как понять фреймворк
-
Основные паттерны проектирования
-
Как выбрать паттерн проектирования
-
Паттерн Singleton
-
Паттерн Abstract Factory
-
Паттерн Factory Method
-
Паттерн Adapter
-
Паттерн Observer
-
Паттерн Strategy
-
Паттерн OOP
-
Абстрактные классы и интерфейсы
-
Инверсия управления
-
Внедрение зависимостей### Архитектура
-
OAuth 2.0
-
Одно входное логирование (Single Sign-On)
-
REST
-
Совместимость версий API
-
JWT
-
Схема бизнес-архитектуры PHP
-
LVS
-
Nginx
-
Сервисная архитектура
-
Микросервисы
-
Регистрация и обнаружение сервисов
-
Чтение и запись в базе данных
-
Разделение базы данных
-
Распределенные транзакции
-
Генератор ID
-
Устойчивое хеширование
-
Кластер Redis
-
Очереди сообщений
-
Проникновение, снежный обвал
-
Ограничение скорости (бочок, бочок с токенами)
-
Уменьшение нагрузки на сервис
-
Сравнение языковРаботаю в сфере программирования уже почти пять лет, и в прошлом году на собеседовании понял, что все еще нахожусь в неловком положении. Простая и повторяющаяся работа без серьезных вызовов уже не вызывает интереса, а при работе с отличными платформами, я все равно сталкиваюсь с трудностями на собеседованиях. С возрастом чувствительность мышления и память заметно ухудшаются.Разработка программного обеспечения не должна ограничиваться только уровнем языка, это понятно всем. Однако, как разработчик PHP, часто оказываюсь запутанным в деловых вопросах, и идеалы и реальность часто расходятся. В прошлом году из-за реорганизации отдела проект, который ранее обслуживали около десяти человек, остался за двумя-тремя сотрудниками, и все проблемы приходилось решать вручную, что вызывало чувство бессилия.
Работа может быть лишь частью вашей жизни, но вы должны иметь четкое представление о своих способностях. Раньше я думал, что учиться чему-то или делать что-то не имеет значения, достаточно потратить время на быстрое обучение нужным технологиям. Но со временем я понял, что у меня нет ни одной технологии, которую я мог бы с гордостью представить, даже не говоря о полноценном проекте. Хотя технологическая структура PHP довольно обширна, после овладения основами, необходимо углубиться в несколько областей, которые вам интересны, иначе вы не будете конкурентоспособны на современном рынке труда. Поэтому многие работодатели сетуют, что средних и старших специалистов становится всё меньше.Собеседования или участие в них неизбежны, поэтому лучше подготовиться. Написание "PHP вопросы и ответы на собеседованиях" поможет создать систему подготовки к собеседованиям, не приходится паниковать и готовиться в последний момент. Всегда быть готовым, как для себя, так и для других.С учетом реальных собеседований на PHP, систематически собрать и систематизировать различные вопросы, которые могут возникнуть, и попытаться предоставить краткие и точные ответы. Если вы столкнулись с проблемами на собеседовании по PHP, присоединяйтесь к обсуждению, создавая Issues. Включает в себя сеть, структуры данных и алгоритмы, PHP, веб, MySQL, Redis, Linux, безопасность, паттерны проектирования, архитектуру, само представление, причины ухода, профессиональное планирование, вопросы подготовки и т. д.
Наконец, желаю всем удачи в будущих поисках работы, чтобы каждый получил желаемое предложение о работе~~
Ссылки
Словарь терминов: как следует из названия, помогает связывать знания
[Ссылки на источники](./docs/ссылки_ Ön источников.md): стоя на плечах гигантов, вы сможете видеть дальше
Обращение
Эти материалы предназначены только для ознакомления, уровень моего понимания ограничен, поэтому могут быть ошибки.
Разрешено копирование, при условии указания источника. Спасибо~~Автор: Лин Фэн
Email: colinlets@gmail.com
Ссылка: https://github.com/colinlet/PHP-Interview-QA
Комментарии ( 0 )