Странно, комментарий «спрячьте под кат» обычно плюсуют, и эти два заминусованных комментария весьма странное выпадение из привычного течения жизни здесь… видимо карты не так легли )))
сначала выведется 2, т.к. считаются все функции из которых состояит выражение, print вернет true (1) к этому прибавится еще 1. Но перед этим выведется 3.5 (результат операции сложения).
Итого: 23.52
Чтобы не повторяться — выше уже подробно расписали.
Согласно этой таблице, среди всех операторов у запятой — наименьший приоритет.
Но в данном случае это даже не имеет значения, потому что у функций (и языковых конструкций, как в случае с 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.
Сначала выполнится последний print и напишет «4», потом его результат (int 1) просуммируется с ('5') и отправится в первый принт как аргумент (напечатается «6»), а потом echo напечатает результат первого принта (int 1). Итого «461».
Но вообще на мой взгляд такие тонкости хороши только для академических целей и состязаний для хакеров. Писать код, который заведомо будет поддерживаться и развиваться другими людьми, и при этом вставлять в него такие штуки — настоящее свинство.
Такие тонкости нужны для того, чтобы столкнувшись с подобным е****ым использованием php не впасть в ступор, а как минимум обратить на это внимание, а как максимум знать что код реально делает.
какой смысл держать в голове особенности поведения php-функций, а так же кучу параметров, которые могут изменяться от версии к версии? Я думаю такие тесты не могут являться показателем способностей человека, поэтому смысла не вижу…
Кстати, вот если уж действительно хотите узнать «как это работает», посмотрите исходники php )
По 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, это для меня не будет показателем того, что его следует брать.
А что, программист ещё должен проверять где пропущены запятые? Это задача компилятора, вообще-то.
И да, все эти сертификаты — просто вытрясание денег, не более, к тому же никто не может проконтролировать, ты сидишь за монитором или кто-то другой.
Реальный показатель — это успешно выполненные проекты в резюме.
твоя сдача сертификации записывается на камеру, перед тем как начать тестирование, ты предъявляешь супервайзеру 2 документа с подписью, на одном из них должна быть твоя фотография. так что если не знаешь… ну ты понял.
теперь допустим сертификацию каким-то образом за тебя сдаст другой человек, вот тут действительно — затраты не соизмеримы с выгодой.
Пример — полная жесть, оторван от реальности. На память знать работу всех функций и расширений типа mysqli, которыми, имхо, почти никто не пользуется — тоже нафиг не нужно. В общем, лично я еще раз убедился, что сертификации — ерунда.
Если я увижу такой код в своем проекте — просто перепишу. Разбираться буду с заказчиком или проджект-менеджером — узнаю, что этот код должен выполнять — и напишу нормально, так, что это человек понять сможет, а не только киборг.
Программисту на php не нужно глубокое знание встроенных функций. я знаю только основные и не брезгую пользоваться мануалом, зачем голову загружать, Куда важнее например знать архитектурные решения, устройство фреймворков (в деталях), и тд. знать хотя бы в общих чертах, про оптимизацию запросов к БД (чтобы фигню не писать), про организацию кеширования, про правильные HTTP-заголовки, п
Тут получаешь сертификат на знание самого языка. Кстати, в процессе подготовки к нему узнаешь много интересных вещей, включая тонкости работы парсера.
P.S. Покупные онлайн-тесты — вот развод на деньги, т.к. они имеют мало общего с реальными задачами на экзамене. Хотя они весьма любопытные и заведомо сложнее.
Этот экзамен действительно масштабен. Вопросы есть по каждой теме. Автор забыл упомянуть о том, что Zend умалчивает количество верных ответов необходимое для сдачи экзамена. На выходе получаешь Pass/Fail.
У меня слава богу появилось 'Pass', хотя во время прохождения этого коварного экзамена приходилось сомневаться в правильности ответов.
Да, есть такое! А было бы интересно увидеть распечатку по темам, где лучше ответил, где хуже.
Во всяком случае на всех экзаменах от Microsoft такое есть.
На одной из конференций сотрудники Zend сказали, что подобную раскладку по темам можно получить только при неудачной сдачи теста. Кстати я не встречал людей которые завалили экзамен… видимо они уходят в лес или просто стесняются призаться.
пример демонстрирует бессмысленность сертификата, надеюсь остальные вопросы были более жизненными, а то после такого кода скорее всего останешься с сертификатом, но без работы.
это вещи, которые знать полезно, но применять опасно. мои знания покрывают большую часть функционала, но много где я в мелочи не въезжаю пока не понадобится. А даже по знакомому функционалу не брезгую открывать онлайн мануал, чтобы удостовериться, что ничего не изменилось.
скажем так, за время работы я уже познакомился с 85%-ми нужного мне функционала.
У каждого разработчика есть свой «нужный» функционал. А в экзамене ZCE попытались объединить всё это воедино. Вы правы что при подготовке к этому экзамену невозможно научиться программировать. Ведь умения — это практические навыки. Вот только многие забывают о фундаментальных знаниях на которых эти навыки и должны строиться.
согласен. кто-то на phpclub справедливо заметил, что zce говорит, что человек знает синтаксис языка, но не факт, что он умеет программировать. и пример здесь подобран неудачно, ведь были же какие-то вопросы и по паттернам, а это уже интереснее.
и ещё, большинство тонкостей языка инкопсулируются в классы, как например, работа с файловой системой, тот же simplexml можно узать только рид онли без обёртки, потому что даже CDATA не реализовано, работа с БД без обёртки тоже страшна, даже с PDO.
Многие считают, что сертификация зло, ибо «мой код работает и ладно». А из-за этого подхода мы и имеем тонны быдлокода написанного по тому же принципу «работает и ладно». И тучу «типа ПХП программеров» на рынке труда.
Дело в том, что конечное число баллов которое ты набрал не разглашается. Либо сдал либо не сдал. На пробниках набирал по максимуму, а на финальном… есть ощущение что тоже неплохо справился.
> С ростом популярности 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. написать мне, я допишу квест… а пока иду спать.
purple_m0nkey, после прочтения твоей мотивационной статьи мы посовещались с друзьями и решили, что если уж китайский за ночь выучили, то и php за час освоим. Купили в интернетах ваучеры и поехали в Сибинфоцентр сдавать на ZCE, как таковых знаний никогда не было и нет, из книг читали только «Освой самостоятельно PHP4 за 24 часа», да и то пока ехали на экзамен на трамвае. Поначалу было трудно, трамвай трясло, но мы успели прочитать оглавление.
От себя хочу заметить, что PHP Architects's Zend PHP 5 Certification Study Guide лучше использовать сразу двух изданий. Т.к. в издании по PHP5 впихнули все, что только можно и из-за этого чуть пострадала глубина изложения.
Еще мне в последние дни перед экзаменом, когда от стадиГайдов и тестов реально тошнило =) помогла собраться вот эта брошюра. Она лежит на блоге у китайского программиста (тоже ZCE, ага =) и представляет собой материал, который выдается при прохождении официального курса подготовки к экзамену. Там, кажется, была пара моментов, которые не освещались в стадиГайде, но были в вулкановских тестах.
Я не считаю, что сертификат — это что-то необходимое, но зато подготовка и сдача очень бодрят и иногда обогащают новыми знаниями.
Поздравляю коллега! А я вот поленился писать статью, после сдачи, в основном из-за того, что хотелось привести примеры вопросов, но после сдачи они как-то быстро забылись.
Как стать Zend PHP 5 Certified Engineer