Вопросы на собеседовании по PHP 2017

Lecture



— С чего начали изучать программирование?
— Си, Паскаль,Html, css, javascript, php, фреймворки


— Предпочтительная среда разработки?
— Phpstorm — подсветка, автокомплит, контроль версий, субд
Notepad++ — подсветка синтаксиса, снипеты, макросы

— Почему выбрали PHP?
— PHP, потому что когда занялся веб-разработкой с удивлением узнал, что хостеры не позволяют, как правило, на своих серверах компилировать Си программы, альтернативы были PHP и Perl, глянул исходники пары гостевух на том и другом, выбрал PHP из-за схожести с Си по синтаксису и, как следствие, вероятному сокращению времени на освоение.

– Какими сторонними библиотеками пользовались?
— Pear, GeoIP

– Опыт работы с различными фреймворками?
— Zend Framework, Yii, Laravel, CakePHP, CodeIgniter

— Что нового в PHP 5.3?
— Пространство имен, замыкания, константы классов

— Что нового в PHP 5.4?
— Трейты, короткая запись массивов

— Что нового в PHP 5.5?
— Генераторы, API хэширования паролей

— Что нового в PHP 5.6?
— Выражения в константах, нефиксированные параметры в функциях, **

— Что нового в PHP 7?
— Объявление типов в параметрах функций, объявление возвращаемого значения в функции, ??, <=>, массивы в константах, анонимные классы

– Типы данных в PHP?
— К скалярным типам данных относятся:
* целый тип (integer),
* вещественный тип данных (float, double),
* логический тип (boolean),
* строковый тип (string)
* и специальный тип NULL.
К нескалярным типам относятся:
* «ресурс» (resource),
* массив (array)
* и объект (object).

– Назови по памяти функции для работы с массивами, строками
void echo ( string arg1 [, string argn…])
string convert_cyr_string ( string str, string from, string to)
array explode ( string separator, string string [, int limit])
string htmlspecialchars ( string string [, int quote_style [, string charset]])
string implode ( string glue, array pieces)
string md5 ( string str [, bool raw_output])
string nl2br ( string string)
void printf ( string format [, mixed args])
mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count])
string str_shuffle ( string str)
string strip_tags ( string str [, string allowable_tags])
int strlen ( string str)
int strpos ( string haystack, string needle [, int offset])
string strstr ( string haystack, string needle)
string strtolower ( string str)
string strtoupper ( string string)
string trim ( string str [, string charlist])
string ucfirst ( string str)
массив array_merge ( массив массив_1, массив массив_2 [, array …])
array array_unique ( array array)
array array ( [mixed …])
int count ( mixed var [, int mode])
bool in_array ( mixed needle, array haystack [, bool strict])
void list ( mixed …)
void shuffle ( array array)

— Поменяй значение переменных A и B местами не используя третью переменную

PHP

1

2

3

4

5

6

<?

$a += $b;

$b = $a - $b;

$a -= $b;    

 

//list($b, $a) = array($a, $b);

— Что выведет: echo (int) ((0.1 + 0.7) * 10);
— 7, так как ((0.1 + 0.7) * 10) = 7,999999 из-за внутреннего преобразования чисел с плавающей точкой

— Разница между echo и print
— echo — конструкция, print — функция

– Что такое сериализация?
— Представление данных (переменных, массивов, объектов) для их передачи (хранения)

— Как хранить пароли (в открытом виде или хэш)
— password_hash, password_verify (php 5.5+)

— Чем отличается хороший код от плохого
— Хороший код соблюдает code convention, Комментированный, Безопасный, Структурированный, Обрабатывает ошибки.

— ООП – абстракция,наследование, инкапсуляция и полиморфизм
— Инкапсуляция – это когда переменные в объекте, а доступ к ним через методы.
Полиморфизм – возможность описывать разные методы, с одинаковым именем . для параметров int и float, в php нормального полиморфизма нет.
Наследование – копирование свойств и методов базовых классов, с возможностью их переопределения и расширения.
Абстракция – создание свойств, методов, классов, которые обязательно должны переопределяться наследниками до непосредственного использования.

— Какие шаблоны проектирования знаешь? Расскажи в чем соль каждого?

— Что есть MVC? Какую роль выполняет каждый из составляющих элементов?
— Model-view-controller (MVC, «Модель-представление-поведение», «Модель-представление-контроллер») — архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты. Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента

— Чем помогает code review — когда смотрят твой код?
— синтаксические ошибки
— convention
— безопасность
— полезности

— Сколько времени нужно на разработку гостевой книги?
Посетители:
* просмотр гостевой книге в виде ленты по 20 постов на страницу;
* регистрация.
Пользователи:
* авторизация,
* восстановление пароля,
* добавление постов в гостевуху.
Администратор:
* редактирование постов,
* добавление ответов на посты (1 пост — 1 ответ).
— 4 — 8 часов

— Как реализуется ответ на посты админом (в отдельной таблице или в той же, где посты).
— в отдельной — comments

created: 2017-07-03
updated: 2021-03-13
132369



Rating 9 of 10. count vote: 2
Are you satisfied?:



Comments


To leave a comment
If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Running server side scripts using PHP as an example (LAMP)

Terms: Running server side scripts using PHP as an example (LAMP)