Как стать автором
Обновить

Комментарии 93

пока окончательно не заминусовали — спрячьте под кат
восхищаюсь. Минус не ставил (даже наоборот, проголосовал «за»), просто предупредил. Итог?
Странно, комментарий «спрячьте под кат» обычно плюсуют, и эти два заминусованных комментария весьма странное выпадение из привычного течения жизни здесь… видимо карты не так легли )))
Что просили, то и получили — спрятали под кат :)
Воспользовались всеми 10 попытками тестовой сдачи? :)
Поведали бы людям суммарное время подготовки.
где-то месяца 3.
ну если учесть, что я учился и работал в это время, плюс какие-то небольшие перерывы…
Лично от себя могу добавить что «PHP Architects's Zend PHP 5 Certification Study Guide» должно быть обязательно Second Edition.
спасибо за дополнение, об этом запамятовал.
НЛО прилетело и опубликовало эту надпись здесь
перенес.
echo '3' + '0.5', print('2') + 1;

сначала выведется 2, т.к. считаются все функции из которых состояит выражение, print вернет true (1) к этому прибавится еще 1. Но перед этим выведется 3.5 (результат операции сложения).
Итого: 23.52
НЛО прилетело и опубликовало эту надпись здесь
вы бы хоть код выполнили ;) для собственной проверки
3.531
сначала выводим 3 + 0.5
затем сразу выводим 2 + 1 — итого получается 3.53
а потом выводится результат print — это 1 — итого 3.531

вроде так :)
хотя макконел бы застрелился увидя такой код. простота — залог успеха :)
НЛО прилетело и опубликовало эту надпись здесь
print не является функцией, при этом у него может быть только один параметр. Поэтому в конструкции

print('2') + 1

аргументом является

('2') + 1

Это второй символ «3» в напечатанной строчке.

Сам оператор print всегда возвращает (int) 1, эта единица фигурирует в результате выполнения как последний символ.
НЛО прилетело и опубликовало эту надпись здесь
В данном примере важным является еще и то, что у «print» приоритет выше, чем у ",", а у операции "+" приоритет выше, чем у «print».
Вы ошибаетесь по поводу приоритетов запятой и print'а.
Расскажите, пожалуйста.
Чтобы не повторяться — выше уже подробно расписали.
Согласно этой таблице, среди всех операторов у запятой — наименьший приоритет.
Но в данном случае это даже не имеет значения, потому что у функций (и языковых конструкций, как в случае с print) приоритет выше, чем у любого оператора.
Таким образом, Вы считаете что у print приоритет выше, чем у любого оператора.

В мануале по функции print есть ссылка вот на эту страничку. На ней написано буквально следующее

print is also part of the precedence table which it needs to be if it is
to be used within a complex expression. It is just about at the bottom
of the precedence list though. Only "," AND, OR and XOR are lower.


Если я правильно перевел с английского, то тут написано в частности, что по приоритету ниже, чем print, располагаются лишь "," AND, OR и XOR.

Кажется, это противоречит Вашему утверждению.
Хм, вы абсолютно правы.
Выходит, что мы оба ошибались :)
А если так?
echo print('5') + print('4');
Сначала выполнится последний print и напишет «4», потом его результат (int 1) просуммируется с ('5') и отправится в первый принт как аргумент (напечатается «6»), а потом echo напечатает результат первого принта (int 1). Итого «461».
Но вы же написали выше, что
>>операции "+" приоритет выше, чем у «print».
А тут первым выполнился последний print
А еще я написал, что у принт — не функция и у него _всегда_ один аргумент. Поэтому

('5') + print('4');

это аргумент первого принта.

Но вообще на мой взгляд такие тонкости хороши только для академических целей и состязаний для хакеров. Писать код, который заведомо будет поддерживаться и развиваться другими людьми, и при этом вставлять в него такие штуки — настоящее свинство.
Такие тонкости нужны для того, чтобы столкнувшись с подобным е****ым использованием php не впасть в ступор, а как минимум обратить на это внимание, а как максимум знать что код реально делает.
какой смысл держать в голове особенности поведения php-функций, а так же кучу параметров, которые могут изменяться от версии к версии? Я думаю такие тесты не могут являться показателем способностей человека, поэтому смысла не вижу…

Кстати, вот если уж действительно хотите узнать «как это работает», посмотрите исходники php )
И много исходников вы просмотрели? Поделитесь с общественностью.
Пару раз, смотрел как работают еще недокументированные функции для интереса. А в чем проблема? www.php.net/downloads.php
Какая проблема? Мне просто интересно.
и сразу зарефакторить это:))
спасибо. Теперь понятно.
НЛО прилетело и опубликовало эту надпись здесь
Вы что-то путаете
3.531
# php -r 'echo «3» + «0.5», print(«3») + 1';
3.531

вообще имхо — за такой код в реальном проекте нужно руки отрывать, надеюсь я так никогда писать не буду :). но знать и понимать это стоит не спорю
echo '3' + '0.5', print('2') + 1;

Помоему такие вопросы — самый изврат в тестах. Смысла нет никогого, а времени все это уходит уйма, короче тупое дроче…
А есть ли подобные тесты (того же уровня) по js, xhtml, css.
Очень хочу набрать книжной инфы, но просто так читать лень.
Видимо, нет )))
На brainbench.com иногда бывают бесплатные тесты.
По CSS очень интересные тесты на sitepoint'е бывают. Например, www.sitepoint.com/forums/showthread.php?t=618512
Я до сих пор не знаю, как в четвертой задаче не изменяя html код сделать тень для текста :-)
Где бы достать пробные тесты в электронном виде, чтоб потренироваться не в боевых условиях?
Они не дорого стоят на сайте Zend, можно купить как отдельно, так и вместе с допуском к экзамену.
В принципе, 10 штук хватает, так как они передают атмосферу как на эказмене. Правда, было какое-то отличие, которое меня по началу вогнало в ступор на экзамене, но уже не помню.
Атмосферу они как раз не передают (одно дело в кресле развалившись щелкать, попутно болтая в аське, а другой когда ты уже вложил свои кровные 125$ и надо обязательно здавать на «Successed») :)
Я тоже получил сертификат в феврале :)
Вообще началось все еще года полтора назад, когда был тест по 4-ой версии, правда тогда не хватило меня на то, что бы подготовиться во время и в итоге уже вышел тест 5-ой версии. И вот спустя где-то полгода решил сдать, чисто для галочки и потешить себя, так как у нас тоже все эти сертификации не особо ценятся.
На подготовку ушел один Certification Bundle и Study Guide. Из доступных подготовительных тестов использовал 7.
На подготовку ушло чуть меньше месяца с учетом того, что учился и работал в это время.

Самым сложным в подготовке было то, что не особо широко используется на практике мною — streams. Также как и у автора ;)

В целом ни капли не жалею что потратил время и деньги на сертификацию — по краиней мере фан получил :)

Для себя отметил — тест на большой опыт кодерства и знание мануала. Инженерных навыков в человеке им не проверишь, и я думаю, что если очередной человек на вакансию php-dev будет иметь при себе ZCE, это для меня не будет показателем того, что его следует брать.
Судя по привиденному примеру, ZCE — это проверка насколько ты индус (http://lurkmore.ru/Индус).
Судя по вашему сообщению, индус это вы.
А что, программист ещё должен проверять где пропущены запятые? Это задача компилятора, вообще-то.
И да, все эти сертификаты — просто вытрясание денег, не более, к тому же никто не может проконтролировать, ты сидишь за монитором или кто-то другой.
Реальный показатель — это успешно выполненные проекты в резюме.
твоя сдача сертификации записывается на камеру, перед тем как начать тестирование, ты предъявляешь супервайзеру 2 документа с подписью, на одном из них должна быть твоя фотография. так что если не знаешь… ну ты понял.

теперь допустим сертификацию каким-то образом за тебя сдаст другой человек, вот тут действительно — затраты не соизмеримы с выгодой.
Тут по соседству один такой проект обсуждают… Вполне успешный с тз. коммерциализации. habrahabr.ru/blogs/webdev/61219/

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

Увидев это код, я бы никогда не взял бы такого программиста на работу. Так что да — показатель.
Да, но проект то успешно выпонен… Это же ваши слова… Т.е. с вашей тз все ОК…

А про контроль того кто сидит за монитором, вы ни разу не сдавали тест на сертификат поэтому и делаете такие заявления.
Если такой код называется «успешно выполненным», то пардон-с, я даже не знаю, что на это возразить.

Если приёмкой кода занимался остолоп, это ещё не повод говорить, что программист успешно справился с заданием.
Спасибо за список литературы
обращайтесъ :)
Пример — полная жесть, оторван от реальности. На память знать работу всех функций и расширений типа mysqli, которыми, имхо, почти никто не пользуется — тоже нафиг не нужно. В общем, лично я еще раз убедился, что сертификации — ерунда.
согласен что жесть, но какой бы жестью это не было, ты обязан научится понимать то, что писали/пишут другие люди. в этом то и весь смысл таких задач.
Если я увижу такой код в своем проекте — просто перепишу. Разбираться буду с заказчиком или проджект-менеджером — узнаю, что этот код должен выполнять — и напишу нормально, так, что это человек понять сможет, а не только киборг.
Имхо просто развод на деньги.

Программисту на php не нужно глубокое знание встроенных функций. я знаю только основные и не брезгую пользоваться мануалом, зачем голову загружать, Куда важнее например знать архитектурные решения, устройство фреймворков (в деталях), и тд. знать хотя бы в общих чертах, про оптимизацию запросов к БД (чтобы фигню не писать), про организацию кеширования, про правильные HTTP-заголовки, п
Тут получаешь сертификат на знание самого языка. Кстати, в процессе подготовки к нему узнаешь много интересных вещей, включая тонкости работы парсера.

P.S. Покупные онлайн-тесты — вот развод на деньги, т.к. они имеют мало общего с реальными задачами на экзамене. Хотя они весьма любопытные и заведомо сложнее.
Этот экзамен действительно масштабен. Вопросы есть по каждой теме. Автор забыл упомянуть о том, что Zend умалчивает количество верных ответов необходимое для сдачи экзамена. На выходе получаешь Pass/Fail.

У меня слава богу появилось 'Pass', хотя во время прохождения этого коварного экзамена приходилось сомневаться в правильности ответов.
Да, есть такое! А было бы интересно увидеть распечатку по темам, где лучше ответил, где хуже.
Во всяком случае на всех экзаменах от Microsoft такое есть.
На одной из конференций сотрудники Zend сказали, что подобную раскладку по темам можно получить только при неудачной сдачи теста. Кстати я не встречал людей которые завалили экзамен… видимо они уходят в лес или просто стесняются призаться.
Ну с 10 попыток-то сдать как-то можно…
пример демонстрирует бессмысленность сертификата, надеюсь остальные вопросы были более жизненными, а то после такого кода скорее всего останешься с сертификатом, но без работы.
В жизни вы используете от силы 15% всех возможностей PHP. В процессе подготовки вы вспомните про оставшиеся 85%.

Этот экзамен не проверяет красоту кода, а оценивает знание теоретических основ, принципов работы интерпретатора и основных расширениий.
это вещи, которые знать полезно, но применять опасно. мои знания покрывают большую часть функционала, но много где я в мелочи не въезжаю пока не понадобится. А даже по знакомому функционалу не брезгую открывать онлайн мануал, чтобы удостовериться, что ничего не изменилось.
скажем так, за время работы я уже познакомился с 85%-ми нужного мне функционала.
У каждого разработчика есть свой «нужный» функционал. А в экзамене ZCE попытались объединить всё это воедино. Вы правы что при подготовке к этому экзамену невозможно научиться программировать. Ведь умения — это практические навыки. Вот только многие забывают о фундаментальных знаниях на которых эти навыки и должны строиться.
согласен. кто-то на phpclub справедливо заметил, что zce говорит, что человек знает синтаксис языка, но не факт, что он умеет программировать. и пример здесь подобран неудачно, ведь были же какие-то вопросы и по паттернам, а это уже интереснее.
и ещё, большинство тонкостей языка инкопсулируются в классы, как например, работа с файловой системой, тот же simplexml можно узать только рид онли без обёртки, потому что даже CDATA не реализовано, работа с БД без обёртки тоже страшна, даже с PDO.
Многие считают, что сертификация зло, ибо «мой код работает и ладно». А из-за этого подхода мы и имеем тонны быдлокода написанного по тому же принципу «работает и ладно». И тучу «типа ПХП программеров» на рынке труда.
Сертификат ZCE — великая вещь, но главное в правильной пропорции совмещать теорию с практикой.
Скажите, сколько баллов из скольки вы набрали?
Дело в том, что конечное число баллов которое ты набрал не разглашается. Либо сдал либо не сдал. На пробниках набирал по максимуму, а на финальном… есть ощущение что тоже неплохо справился.
А бумажный-то сертификат выдали? Или работодателю предявлять линк на их сайт? :)
Выдают месяца через полтора. Хотя у меня на стенке висит, работодателю достаточно строчки в резюме, а верификация сайтом все-таки удобнее.
Еще один сертифицированный пхп-инженер :) Поздравляю :)

По-моему в рунете уже в традицию вошло: сдал зенд-сертификацию — напиши статью. :)

Я вот тоже когда-то писал, как я Zend-сертификацию проходил.
Поздравляю. Завидую. Давно облизываюсь на ZCE, но всё никак не соберусь подготовиться и пройти наконец :-(
> С ростом популярности PHP, возникла такая проблема — разработчиков много,
> но кто из них действительно профи? Разобрать не так-то просто, поэтому было
> решено создать промышленный стандарт сертификации.
И что? Мне, как человеку, ищущему в настоящий момент высококлассного PHP-программиста, это всё равно что мёртвому припарка. Потому что:
1. Покрытие этого теста по веб-девелопером равно приблизительно 0.0%
2. У меня есть величайшее сомнение, что человек получивший данный сертификат не представляет из себя шлак, на который я потрачу время впустую при собеседовании.
сдал вчера. вопросы показались гораздо более простыми, чем мок-тест от php|architects.

суть подготовки

1. надо несколько раз поставить и настроить php (в различных вариантах — apache + mod_php, apache + cgi, nginx + php-fpm), это заставит хотя бы пару раз заглянуть в php.ini, поняв, что и за что там отвечает;

2. в качестве обертки для БД — использовать каждый день PDO с различными драйверами под него (никаких PEAR DB или сторонних);

3. написать пару веб-сервисов (REST, XML-RPC, SOAP), применив различные шаблоны проектирования (Singleton/Registry, Builder/Factory, Adapter/Strategy, Proxy/ActiveRecord, Command/ChainOfResponsibility) — сервис погоды, случайных фраз или цитат известных людей, вариантов множество, выбирать вам. Заодно разберетесь, что есть такое валидный XML, и почему важен UTF-8 encode entities (привет w3c.org);

4. поковырять любой современный CMF (ZF, Symphony, CodeIgniter), чтобы просмотреть что такое MVC, __autoload, SPL, PPP (public, protected, private), abstract, final, понять как грамотно использовать различные предустановленные константы вроде __FILE__, __CLASS__ и функции вроде call_user_func(), func_num_args(), func_get_args();

5. найти на milw0rm'e любой бажный движок и внимательно просмотреть все патчи, разобравшись, чем грозит SQL Injection, XSS, CSRF и RFI, на php.net прочесть про magic_quotes, ===, basename(), htmlentities (с пониманием разницы между ним и htmspecialchars), strip_tags, mysql_real_escape (с разницей от mysql_escape) и hash. погуглить немного prepared statements, написать свою функцию экранирования, понять, где нужно включать allow_url_fopen, чем полезна open_basedir и как ее можно обойти, не пропустить filter_var

6. сесть и переписать свой тысячный твиттер с приобретенными знаниями о безопасности, поигравшись в запросах c EXPLAIN и EXPLAIN ANALYZE, созданием правильных индексов и применения нормализации (и почему на нагруженных проектах про нее надо забывать)

7. развернуть для своих игрищ линух (пойдет ubuntu 8.04) — для виндузятников в VMWARE. разобраться с rwx, chmod и umask. узнать про tempnam.
там же доставить xdebug через pecl, memcached и php-apc через aptitude. понять весь масштаб трагедии еще недописанного твиттера, добавить туда $mc->set('user_31337_friends', $friends, 0, 900); $friends = $mc->get('user_31337_friends'), узнать о race conditions, обойти его с помощью ключа с ttl, включить APC и увидеть прирост скорости

8. найти книжку про оптимизацию css и js, выставление грамотных header с cache-control'ом. понять про че она)

9. написать мне, я допишу квест… а пока иду спать.
Я вот не знаю с чем это связано, с моей статьёй на хабре или ещё с чем то, но за вчерашний день целых три человека из Новосиба сдали на ZCE :-D
purple_m0nkey, после прочтения твоей мотивационной статьи мы посовещались с друзьями и решили, что если уж китайский за ночь выучили, то и php за час освоим. Купили в интернетах ваучеры и поехали в Сибинфоцентр сдавать на ZCE, как таковых знаний никогда не было и нет, из книг читали только «Освой самостоятельно PHP4 за 24 часа», да и то пока ехали на экзамен на трамвае. Поначалу было трудно, трамвай трясло, но мы успели прочитать оглавление.
От себя хочу заметить, что PHP Architects's Zend PHP 5 Certification Study Guide лучше использовать сразу двух изданий. Т.к. в издании по PHP5 впихнули все, что только можно и из-за этого чуть пострадала глубина изложения.
Еще мне в последние дни перед экзаменом, когда от стадиГайдов и тестов реально тошнило =) помогла собраться вот эта брошюра. Она лежит на блоге у китайского программиста (тоже ZCE, ага =) и представляет собой материал, который выдается при прохождении официального курса подготовки к экзамену. Там, кажется, была пара моментов, которые не освещались в стадиГайде, но были в вулкановских тестах.
Я не считаю, что сертификат — это что-то необходимое, но зато подготовка и сдача очень бодрят и иногда обогащают новыми знаниями.
Поздравляю коллега! А я вот поленился писать статью, после сдачи, в основном из-за того, что хотелось привести примеры вопросов, но после сдачи они как-то быстро забылись.
Ребят, заходим на мой блог и качаем книги по сертификации!
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.