Огрызки от собеседований
От собеседований, которые я недавно проводил, у меня осталась масса листочков с заковыристыми вопросами. Например, если человек говорил, что знает PHP на 10 из 10, то я ему давал, например, такой тест:
var_dump((bool) print_r(${strrev('SLABOLG')} = 1, $GLOBALS[1]{1} == (unset) b"1") == "00");Сказать есть ли тут ошибки, если нет, то что получим и что вообще тут происходит.
P.S. Я в Самаре, «Holiday Inn» отличный отель.
Читайте также
myphpinfo.phps
2004
Загадки PHP
2006
Комментарии 18
и что значит это чудное b"1"?
Она проверяет знания языка.
Это наш уважаемый автор проникся возможностями приведения типов в
http://ru2.php.net/manual/en/language.type … ypecasting
там есть
(binary) casting and b prefix forward support was added in PHP 5.2.1
$binary = b"binary string";
и про unset тоже там же
(unset) — cast to NULL (PHP 5)
повозишься с
однако на собеседовании такое давать, это круто. это комплекс неполноценности растить в программере -- на 5 знает
а вот про '00' это уже из жизни, поскольку
echo var_dump((bool) «0»); //false
echo var_dump((bool) «00»); //true
и это противный подводный камень, бо строку на пустоту надо проверять явно, а не
if ($myNotEmtyString) …
$GLOBALS=1 тоже вызвал мысль, неужели так дадут сделать? Но и правда дали. Можно ли у числа воспользоваться устаревшим (deprecated since 5.3) синтаксисом доступа к строке по индексу для числа? Сконвертится ли число в строку? Нет конечно:
Accessing variables of other types (not including arrays or objects implementing the appropriate interfaces) using [] or {} silently returns NULL.
Действительно бездонна глубина мануала, и велика мудрость его.
Комментарий для hshhhhh.name:
У меня была вакансия со знанием PHP
Комментарий для fantaseour.ya.ru:
Когда я ещё активно следил за языком, я читал changelog каждого релиза, так что я просто в курсе :)
Просто если человек говорит, что знает на 10/10, то это либо правда так (что маловероятно), либо он ощутил, что достиг вершины знаний без повода (что более вероятно).
всё-таки хотелось бы вернуть человека на землю, чтобы понять почему он ещё не там и чем это может грозить в будущем.
Во втором случае мне
Комментарий для fantaseour.ya.ru:
В жизни как только не пишут, а затруднение она вызывает, потому что собраны несколько тонких или малоизвестных вещей.
Некоторые штуки могут и случайно получаться, вроде if (!$str) {}, где в $str оказалось сначала «"0"», потом «"00"».
про 0 и 00 согласен, место тонкое и надо его знать.
меня тут спросили на собеседовании на сколько я оценю себя. сказал, -- ребят, я пишу на этом 10 лет каждый день и пытаюсь скрупулезно все читать. Тем не менее оценить свои знания затруднюсь, они точно не 100%. Поскольку в баллах не просили, я и не сказал. Себя вообще сложно в баллах оценивать, поскольку ты не знаешь этих 100%. Можешь лишь оценить уровень владения «неуверенный» — «хороший, но осторожный, много еще белых пятен» — «уверенный, если есть белые пятна, легко прочту и разберусь». А вот 100% только про hello world могу сказать.
Комментарий для fantaseour.ya.ru:
Вот и я тоже, несмотря на то, что читаю changelog :)
Я обычно это делаю в «минуты отдыха», есть куча запланированных мелочей, которые можно сделать, если выдалась свободная минутка. Например, сейчас она выдалась, вот, я отвечаю на комментарии.
Комментарий для fantaseour.ya.ru:
Так у них в Яндексе только 20% на работу уходит. Волож разрешил.
Особенностью 00 я время от времени пользуюсь на сайте http://spritegen.website-performance.org/ Там требуют задать отступы, хотя при правильной вёрстке они не нужны. Ввод нулей приводит к сообщению, что обязательные поля не заполнены. 00 работает как надо.
Комментарий для Евгения Степанищева:
Она проверяет с человеком ты говоришь или с интерпретатором
Комментарий для nudnik.ru:
Вводишь людей в заблуждение :) Они ж твою шутку могут за правду принять :) 20% времени можно использовать на личные проекты или пинание балды.
— поработый компилятором
— реши задачку на логику
по певому пункту складываеться впечатление что в конторе придеться писать в блокноте (нотпаде) и никаких IDE не предусмотрено. что работа состоит в том чтобы писать сразу обфусцированый код который никто не поймет и поддерживать не будет, потому что если на проекте есть куски такого кода то можно смела вешаться. а так же что все работающие там писатели такого кода дикие задроты и ботаны (гики и нерды)
по второму —
интерпретатором
Странная точка зрения. Должно было сложиться впечатление, что придётся читать много кода.