en
Feedback
Библиотека собеса по PHP | вопросы с собеседований

Библиотека собеса по PHP | вопросы с собеседований

Open in Telegram

Вопросы с собеседований по PHP и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/9f3affba Для обратной связи: @proglibrary_feeedback_bot

Show more
3 150
Subscribers
No data24 hours
-37 days
-430 days
Posts Archive
В чем разница между криптографическими функциями md5(), crc32() и sha1() в PHP? В PHP md5(), crc32() и sha1() — это все криптографические хеш-функции, но они имеют различия в размере вывода, стойкости к коллизиям и алгоритмах. md5(): md5() создает хеш-значение размером 128 бит (16 байт). Широко используется для контрольных сумм и криптографических хеш-функций. Однако из-за обнаруженных уязвимостей, его больше не рекомендуется использовать для криптографических целей, где требуется надежная защита от коллизий. crc32(): crc32() генерирует 32-битное (4 байта) контрольное значение циклической избыточности (CRC). Обычно используется для проверки ошибок в передаче данных. Не подходит для криптографических целей из-за отсутствия криптографической надежности и высокой вероятности коллизий, особенно для коротких входных данных. sha1(): sha1() создает хеш-значение размером 160 бит (20 байт). Более безопасен, чем md5() и crc32(), но также подвержен атакам на коллизии. В некоторых приложениях все еще используется, но обычно считается менее безопасным, чем более современные алгоритмы хеширования, такие как SHA-256 или SHA-512.

Какова цель функции «array_map» в PHP и как её использовать? Функция array_map() в PHP используется для применения заданной ф
Какова цель функции «array_map» в PHP и как её использовать? Функция array_map() в PHP используется для применения заданной функции к каждому элементу массива. Она создает новый массив, содержащий результаты применения функции к каждому элементу исходного массива. Функция обратного вызова применяется к каждому элементу последовательно, и ключи сохраняются. В этом примере функция square() применяется к каждому элементу массива $numbers с использованием array_map(), что приводит к созданию нового массива $squaredNumbers, где каждый элемент является квадратом соответствующего элемента исходного массива.

Что такое вариативная функция или spread-оператор? Вариативная функция — это функция, которая может принимать переменное коли
+1
Что такое вариативная функция или spread-оператор? Вариативная функция — это функция, которая может принимать переменное количество аргументов. Это означает, что ее можно вызывать с различным числом аргументов. В PHP вариативные функции объявляются с помощью оператора ... (также известного как spread-оператор) перед именем аргумента. Например, вариативная функция может быть объявлена следующим образом(фото 1) Spread-оператор, также представленный символом ..., выполняет обратную операцию — он распаковывает массив и передает его элементы как аргументы в функцию. Он может использоваться для передачи переменного количества аргументов в функцию или для объединения массивов. Например, spread-оператор можно использовать следующим образом(фото 2) В этом примере массив $numbers распаковывается с помощью spread-оператора и его элементы передаются в вариативную функцию sum в качестве отдельных аргументов.

Можно ли компоновать traits в trait? В PHP, с версии 5.4 и выше, поддерживаются трейты (traits), которые позволяют компоноват
Можно ли компоновать traits в trait? В PHP, с версии 5.4 и выше, поддерживаются трейты (traits), которые позволяют компоновать поведение в классах без необходимости наследования. Трейты могут использоваться для компоновки поведения внутри других трейтов, что может быть полезным для структурирования и организации кода. В приведенном примере трейт TraitC использует (use) два других трейта (TraitA и TraitB) и предоставляет дополнительный метод methodC. Класс Example затем использует трейт TraitC, что позволяет ему наследовать все методы из TraitA, TraitB и TraitC. Таким образом, в PHP можно компоновать трейты внутри других трейтов для организации и переиспользования кода.

Как обрабатывать загрузку файлов в PHP? Создание HTML-формы: Сначала создайте HTML-форму, которая включает поле для выбора фа
+1
Как обрабатывать загрузку файлов в PHP? Создание HTML-формы: Сначала создайте HTML-форму, которая включает поле для выбора файла. Это позволяет пользователям выбирать файлы для загрузки. Убедитесь, что атрибут enctype формы установлен в «multipart/form-data», что необходимо для загрузки файлов. Обработка загрузки в PHP: Когда форма отправляется, данные файла отправляются на PHP-скрипт, указанный в атрибуте action формы. В PHP-скрипте можно обрабатывать загрузку файла. Обработка ошибок загрузки файла: Вы также можете обработать различные ошибки загрузки, такие как превышение размера файла, недопустимый тип файла и т.д., и предоставить соответствующие сообщения об ошибках пользователю. Соображения безопасности: Убедитесь, что вы проверяете и очищаете данные загруженного файла, чтобы предотвратить уязвимости безопасности, такие как атаки на обход директорий. Кроме того, рассмотрите возможность установки соответствующих разрешений на каталог загрузки, чтобы ограничить доступ.

Как вы понимаете REST? REST (Representational State Transfer) — это архитектурный стиль, используемый для проектирования распределенных систем, в основе которого лежат принципы работы с ресурсами через стандартные операции HTTP. В контексте PHP, REST используется для создания веб-сервисов или API (интерфейсов программирования приложений), которые обрабатывают запросы от клиентов и предоставляют данные в формате, который может быть легко интерпретирован и использован другими приложениями или сервисами. В PHP реализация REST API часто основана на использовании фреймворков, таких как Laravel, Symfony или Slim Framework. Эти фреймворки предоставляют инструменты для обработки маршрутов, запросов HTTP и ответов, а также для работы с базами данных и другими источниками данных. Основные принципы REST включают в себя следующее: Ресурсы (Resources): Каждый компонент API представляет собой ресурс, например, пользователя, товар или комментарий. Методы HTTP (HTTP Methods): Операции, которые можно выполнять над ресурсами, соответствуют стандартным методам HTTP, таким как GET (получение данных), POST (создание нового ресурса), PUT (обновление существующего ресурса) и DELETE (удаление ресурса). Представление (Representation): Ресурсы представлены в формате, который может быть интерпретирован клиентом, обычно в виде JSON или XML. Состояние (Stateless): Каждый запрос к серверу должен содержать всю необходимую информацию для его выполнения. Сервер не должен сохранять состояние между запросами от одного и того же клиента. Однородный интерфейс (Uniform Interface): Единый интерфейс для взаимодействия с ресурсами, что делает API более гибким и расширяемым. Набор гипермедиа (Hypermedia as the Engine of Application State, HATEOAS): Предоставление клиенту ссылок на доступные действия и ресурсы, что позволяет клиенту динамически взаимодействовать с API без необходимости знания всех возможных конечных точек заранее.

Как передаются переменные (по значению или по ссылке)? В PHP переменные могут передаваться как по значению, так и по ссылке.
Как передаются переменные (по значению или по ссылке)? В PHP переменные могут передаваться как по значению, так и по ссылке. По умолчанию, в PHP переменные передаются по значению. Это означает, что когда переменная передается в функцию или присваивается другой переменной, создается ее копия, и любые изменения, сделанные внутри функции или на другой переменной, не влияют на оригинальную переменную. Однако, PHP также предоставляет возможность передавать переменные по ссылке, используя символ '&' перед переменной при ее передаче в функцию или присваивании другой переменной. Когда переменная передается по ссылке, функция или другая переменная работают с тем же экземпляром переменной, и изменения внутри функции или на другой переменной отражаются на оригинальной переменной.

Напишите программу для валидации адреса электронной почты Вы можете использовать встроенную функцию filter_var() с фильтром F
Напишите программу для валидации адреса электронной почты Вы можете использовать встроенную функцию filter_var() с фильтром FILTER_VALIDATE_EMAIL Эта программа будет выводить либо «$email является действительным адресом электронной почты.», либо «$email не является действительным адресом электронной почты.», в зависимости от того, является ли предоставленный адрес электронной почты действительным. Вы можете заменить «example@example.com» на любой адрес электронной почты, который вы хотите проверить.

Что такое Cohesion и Coupling? Cohesion и Coupling — это два ключевых понятия в проектировании программного обеспечения. Cohesion (качественная связанность) обозначает меру того, насколько хорошо связаны между собой элементы системы. Чем выше уровень cohesion, тем лучше организована система, и тем проще ее понимать и поддерживать. Высокий уровень cohesion достигается, когда компоненты в системе обладают сильной функциональной связью, а каждый компонент выполняет свои задачи наилучшим образом. Coupling (связность) обозначает меру зависимости между элементами системы. Чем выше уровень coupling, тем сложнее поддерживать систему, т. к. любые изменения в одной ее части приведут к изменениям в других частях. Высокий уровень coupling может привести к тому, что система станет очень сложной и нестабильной. Низкий уровень coupling достигается, когда компоненты системы не зависят друг от друга и могут быть изменены без повлияния на другие компоненты. В целом, проектирование системы должно стремиться к высокой cohesion и низкому coupling. Для этого можно использовать различные подходы и паттерны проектирования, такие как SOLID, DRY, YAGNI, TDD и другие. Важно учитывать каждый элемент системы и продумывать его связи с другими элементами.

Назовите 3-4 нормальные формы реляционных БД. В реляционных базах данных, нормальные формы используются для оценки и улучшения структуры данных, чтобы минимизировать избыточность и аномалии данных. Вот некоторые из основных нормальных форм: Первая нормальная форма (1NF): В этой форме все атрибуты в таблице являются атомарными, то есть каждая ячейка содержит только одно значение. Вторая нормальная форма (2NF): Вторая нормальная форма требует, чтобы каждый неключевой атрибут полностью зависел от ключа, то есть не должно быть частичной зависимости. Третья нормальная форма (3NF): В этой нормальной форме устраняются транзитивные зависимости. Это означает, что если A зависит от B, а B зависит от C, то A не должно зависеть от C. Бойса-Кодда нормальная форма (BCNF): Это расширение третьей нормальной формы, которое гарантирует, что каждое неключевое поле зависит только от ключа целиком, а не от его части. Эти нормальные формы представляют собой последовательные шаги в процессе нормализации, который помогает в проектировании эффективных и надежных реляционных баз данных.

Что такое инкремент и декремент, в чем разница между префиксным и постфиксным инкрементом и декрементом? Инкремент и декремент в программировании, в частности в PHP, относятся к операциям увеличения и уменьшения значения переменной на единицу соответственно. В PHP инкремент выполняется с помощью операторов ++, а декремент — с помощью операторов --. Разница между префиксным и постфиксным инкрементом и декрементом заключается в порядке выполнения операции относительно значения переменной. Префиксный инкремент и декремент: Оператор ++ или — ставится перед переменной (++$x, --$x). При этом сначала происходит изменение значения переменной, а затем возвращается новое значение. Постфиксный инкремент и декремент: Оператор ++ или — ставится после переменной ($x++, $x--). При этом сначала возвращается текущее значение переменной, а затем происходит изменение значения переменной.

Расскажите о regexp. В PHP, регулярные выражения (регэкспы) представлены с помощью функций и операторов для работы с ними. Регулярные выражения представляют собой шаблоны, которые используются для поиска и/или замены текста по определенным правилам. Вот некоторые из основных функций и операторов для работы с регулярными выражениями в PHP: preg_match(): Эта функция используется для проверки, соответствует ли заданный шаблон регулярному выражению. preg_match_all(): Похожа на preg_match(), но находит все совпадения в тексте. preg_replace(): Заменяет все вхождения шаблона регулярного выражения на заданную строку. preg_split(): Разделяет строку на подстроки с помощью регулярного выражения в качестве разделителя. preg_quote(): Экранирует все специальные символы в строке, чтобы они могли быть использованы в регулярном выражении без изменения их значения. Это лишь базовые примеры использования регулярных выражений в PHP. Регулярные выражения очень мощный инструмент, и для их полного понимания рекомендуется ознакомиться с документацией PHP и углубиться в изучение регулярных выражений в целом.

Какова цель функции «getopt» в PHP, и как ее использовать для обработки аргументов командной строки? Функция getopt() в PHP используется для разбора опций командной строки и аргументов, переданных скрипту. Она позволяет определять опции и их соответствующие значения, которые могут быть предоставлены при выполнении PHP-скрипта из командной строки. Вот краткий обзор того, как работает getopt() и как его можно использовать для обработки аргументов командной строки: Синтаксис: getopt(string $options, array $longopts = [], int &$optind = null): array|false $options: Строка, содержащая список односимвольных опций, которые должен распознать скрипт. Каждый символ в этой строке представляет собой одну опцию. Если опция требует аргумент, ее следует завершить двоеточием (:). $longopts: Необязательный массив, содержащий список длинных опций, которые должен распознать скрипт. Каждый элемент в массиве должен быть строкой, указывающей длинную опцию. Если опция требует аргумент, ее следует завершить знаком равенства (=). $optind: Необязательный параметр-ссылка, который обновляется индексом следующего аргумента для обработки. Возвращаемое значение: Если разбор выполнен успешно, getopt() возвращает ассоциативный массив, содержащий разобранные опции и их значения. Если при разборе возникла ошибка или встречена недопустимая опция, getopt() возвращает false.

Расскажите об автоматических анализаторах кода PHP Автоматические анализаторы кода PHP представляют собой инструменты, которые помогают разработчикам обнаруживать потенциальные проблемы, ошибки и несоответствия стандартам кодирования в их PHP-проектах. Они облегчают процесс разработки, улучшают качество кода и делают его более поддерживаемым. Roundcube — это веб-почтовый клиент с открытым исходным кодом, написанный на PHP, поэтому использование анализаторов кода для PHP критически важно для его разработки и поддержки. Вот некоторые из популярных автоматических анализаторов кода PHP: PHP_CodeSniffer: Это один из наиболее широко используемых инструментов для проверки соответствия кода стандартам. Он может анализировать код на соответствие различным стандартам кодирования, таким как PSR (PHP Standards Recommendations), PEAR, Zend, и пользовательские стандарты. PHPMD (PHP Mess Detector): Этот инструмент анализирует код на предмет потенциальных проблем, таких как дублирование кода, сложные условия, избыточная сложность функций и т. д. PHPStan: Это инструмент статического анализа кода, который помогает выявить ошибки в коде на этапе разработки. Он проверяет типы данных, используемые в коде, и обнаруживает потенциальные ошибки, такие как вызов несуществующих методов или свойств объектов. SonarQube: Это мощный инструмент для анализа качества кода на множестве языков программирования, включая PHP. Он предоставляет широкий спектр анализов, включая статический анализ, анализ цикломатической сложности, анализ уязвимостей безопасности и т. д.

Самые полезные каналы для программистов в одной подборке! Сохраняйте себе, чтобы не потерять 💾 🔥Для всех Библиотека программиста — новости, статьи, досуг, фундаментальные темы Книги для программистов IT-мемы Proglib Academy — тут мы рассказываем про обучение и курсы #️⃣C# Книги для шарпистов | C#, .NET, F# Библиотека шарписта — полезные статьи, новости и обучающие материалы по C# Библиотека задач по C# — код, квизы и тесты Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel ☁️DevOps Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps Вакансии по DevOps & SRE Библиотека задач по DevOps — код, квизы и тесты Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования 🐘PHP Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP Вакансии по PHP, Symfony, Laravel Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по PHP — код, квизы и тесты 🐍Python Библиотека питониста — полезные статьи, новости и обучающие материалы по Python Вакансии по питону, Django, Flask Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Python — код, квизы и тесты ☕Java Библиотека джависта — полезные статьи по Java, новости и обучающие материалы Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Java — код, квизы и тесты Вакансии для java-разработчиков 👾Data Science Книги для дата сайентистов | Data Science Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Data Science — код, квизы и тесты Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту 🦫Go Книги для Go разработчиков Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Go — код, квизы и тесты Вакансии по Go 🧠C++ Книги для C/C++ разработчиков Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++ Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по C++ — код, квизы и тесты Вакансии по C++ 💻Другие профильные каналы Библиотека фронтендера Библиотека мобильного разработчика Библиотека хакера Библиотека тестировщика 💼Каналы с вакансиями Вакансии по фронтенду, джаваскрипт, React, Angular, Vue Вакансии для мобильных разработчиков Вакансии по QA тестированию InfoSec Jobs — вакансии по информационной безопасности 📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈 🤖Также у нас есть боты: Бот с IT-вакансиями Бот с мероприятиями в сфере IT Мы в других соцсетях: 🔸VK 🔸YouTube 🔸Дзен 🔸Facebook * 🔸Instagram * * Организация Meta запрещена на территории РФ

Какова разница между «cookie» и «session»? В PHP «cookie» и «session» — это механизмы управления состоянием в веб-приложениях, но они служат немного разным целям: Cookie: Куки — это небольшие фрагменты данных, которые отправляются с веб-сервера на веб-браузер пользователя и хранятся локально на компьютере пользователя. Куки обычно используются для хранения информации, специфичной для пользователя, такой как учетные данные для входа, предпочтения или элементы корзины покупок. Они часто используются для отслеживания поведения пользователя и персонализации пользовательского опыта. У куки может быть время истечения, после которого они автоматически удаляются из браузера пользователя. Session: Сессия — это способ хранения информации о пользователе на протяжении нескольких страниц или запросов в рамках одного посещения веб-сайта. В отличие от куки, которые хранятся на компьютере пользователя, данные сессии хранятся на сервере. Сессии обычно используются для поддержания аутентификации пользователя и для хранения временной информации, связанной с взаимодействием пользователя с веб-сайтом. Сессии часто реализуются с помощью уникального идентификатора, называемого идентификатором сессии, который передается между сервером и клиентом для ассоциирования последующих запросов с той же сессией.

Что такое цикл в PHP и какие существуют типы циклов? В PHP цикл — это программная конструкция, позволяющая выполнять блок код
Что такое цикл в PHP и какие существуют типы циклов? В PHP цикл — это программная конструкция, позволяющая выполнять блок кода повторно на основе определенного условия. Циклы полезны для автоматизации повторяющихся задач или итерации по коллекциям данных. Вот различные типы циклов, доступных в PHP: Цикл for: Используется, когда заранее известно, сколько раз нужно выполнить блок кода. Он состоит из трех частей: инициализации, условия и инкремента/декремента. Цикл while: Выполняет блок кода до тех пор, пока указанное условие истинно. Проверка условия выполняется перед каждой итерацией. Цикл do-while: Похож на цикл while, но условие проверяется после выполнения блока кода. Это гарантирует, что блок кода будет выполнен хотя бы один раз, даже если условие изначально ложно. Цикл foreach: Специально предназначен для итерации по массивам или объектам. Он проходит по каждому элементу массива или каждому свойству объекта.

В чем разница между '==' и '===' ? В PHP, «==» используется для нестрогого сравнения, а «===» — для строгого сравнения. Нестрогое сравнение («==»): При использовании двойного знака равенства PHP сравнивает значения операндов после их преобразования в общий тип данных. Например, 5 == '5' вернет true, потому что PHP преобразует строку '5' в целое число 5 перед сравнением. Строгое сравнение («===»): При использовании тройного знака равенства PHP сравнивает не только значения операндов, но и их типы данных. Это означает, что для того чтобы выражение было истинным, значения операндов должны быть одинаковыми и одного типа. Например, 5 === '5' вернет false, потому что типы операндов различны. В заключение, «==» проверяет, равны ли значения после преобразования типов, в то время как «===» проверяет, равны ли значения и типы операндов. Использование строгого сравнения (===) часто рекомендуется для избежания неожиданного поведения, вызванного приведением типов.