Yep – this morning I took and passed my first Zend Certified Engineer qualification. As with all the candidates, we are bound by a Non Disclosure Agreement, but my tip for anyone wanting to take the exam is to practise and revise more. I found the questions much trickier than I thought they were going to be (based off the PHP5 mock tests I had left), but rightfully so. Good times people!
Oh yes, by the way I know the link doesn’t work yet, but I’m informed it can take 24-48 hours for my Zend Yellow Pages entry to become live… It’s live now
Srsly PHP, why can’t I do this:
$value = isset($myGPCWrapper->Get("value")) ? $myGPCWrapper->Get("value") : $default;
Resulting in this:
Fatal error: Can’t use method return value in write context in /path/to/my/script.php on line 21
And instead I have to do this:
$foo = $myGPCWrapper->Get("value");
$value = isset($foo) ? $foo : $default;
or
$value = isset($_GET['value']) ? $myGPCWrapper->Get("value") : $default;
I mean… how is isset writing to my variable?!
Writing a bit of PHP tonight and found that if you use parse_ini_file to load an INI file in PHP, there is a slightly hacky way of having double quotes in strings. For example, I tried these:
somevalue = "This ""string"" has quotes"
somevalue = "This \"string\" has quotes"
But none of them worked! Turns out a quick look at the PHP manual reveals a simple (but a bit hacky) solution to this is to define a constant e.g. QUOTE to be “, and use that in the INI string.
// In the PHP:
define('QUOTE', '"');
; and in the INI file
somevalue = "This "QUOTE"string"QUOTE" has quotes"

As some of you may know, back in March/April time, I started revising for my Zend PHP5 Certification, but that was pretty much put on hold when we had a baby… now I’m revising again and after having revised a couple of topics I retook the test. As you can see, I passed it “with flying colours” this time, but still have improvement to do with Streams and Design patterns…
Comparing with my last test:
- 2 categories remained the same;
- Database access
- Web features)
- 4 categories improved;
- PHP 4/5 Differences (was FAIL)
- Security (was PASS)
- String Manipulation and Regular Expressions (was PASS)
- Functions (was PASS)
- 2 categories declined;
- Streams and Network Programming (was PASS)
- Design (was EXCELLENT) [eep - not so good that!]
I think overall however, these statistics shouldn’t be examined too much – there are some questions I can guess and don’t demonstrate that I truly *know* some topics, so I’m going to cover off a few categories I don’t feel to confident on anyway – but then the practise tests are just indicators, and not meant to represent the final exam… we’ll see!