If you have been already preparing for Zend PHP5 Certification exam from the official study guide, you know it has many annoying errors and misleading statements. Up until the beginning of April there was no forum/listing where you could cross-check the errors, but now we have this errata in our hands. Its pretty complete, i only missed two thing that i noticed myself while i was studying. I added these in the comments section of the page. For the sake of completeness i repeat the list hereby. Happy studying!
First Edition Errata
Page 7:
reads "If you need to output data through a function, you can use print() instead". Person reporting comments that "PHP manual makes it clear that print is not really a function but rather a language construct" So perhaps we just need to change the wording.
Page 11:
reads "When converted to a number or a STRING, a boolean becomes ... 0 otherwise". Compare this to
http://www.php.net/manual/en/language.types.string.php
saying:
Boolean FALSE is converted to "" (the empty string).
Page 12:
top line reads "...want to convert to enclosed in brackets"... this should read "want to convert to enclosed in parentheses"
Page 17:
should read $a = int('Test'); //$a==0 ... echo ++$a; //outputs 1. Otherwise the output will read "Tesu" because of the incrementing
Page 19:
lines 2,3: If both bits are either set or unset, the resulting bit is unset
Page 26:
check versus table in the manual http://www.php.net/manual/en/language.operators.php
Page 29:
on while loops: should say "they allow you to perform a series of operations until a condition evaluates to false"
Page 34:
the line "if($oldErrorHandler) will cause an error... need to put global $oldErrorHandler at the beginning of function myErrorHandler(). Also change to $oldErrorHandler = set_error_handler('myErrorHandler');
Page 50:
should read "giving the key for the specific element..."
Page 52:
-- if the two arrays had common elements that also share the same string keys or that have numeric keys (even if they are different) they would only appear once in the end result. This isn't true and should be changed to "if the two arrays had common keys (either string or numeric) they would only appear once in the end result"
Page 53:
var_dump ($a==$c); //should be false
Page 54:
should be echo array_key_exists('a', $a);
Page 54:
should be echo in_array (2, $a);
Page 55:
typo - "note how key key association..."
Pages 56-57: use of reset() is misleading here: only if the $array is passed by-reference to the function, it would be necessary to be reset; otherwise we'll find a brand new reset array inside the function by default.
Page 57:
should be $array = array(1,2,3); ... end ($array); to work with code right after it
Page 67:
"Push and pull" should be "push and pop"
Page 68:
should read "if you intend to use an array as a queue, you can add elements to the beginning and extract them from the end by using the array_unshift() and array_pop() functions".. Also should change the code appropriately
Page 76:
"Here's an escaped backslash - \ - "... should read "...backslash -\\"
Page 77:
echo srtr('abc','a','1'); //(instead of strstr)
Page 79:
strncasecamp instead of strcasencmp
Page 81:
Line 1 should be - "You can use the strspn() function..."
Page 87:
should read "A sign specifier (a plus or minus symbol) ... "
Page 88:
printf("%d", $f); //prints 123
Page 92:
should read "the function returns integer 1 if the match is successful"
Page 98:
should read "Contrary to popular belief, POST is not an inherently more secure way to ..."
Page 99:
2nd par, should read "As you can see, the data has been encoded and appended to the end of "...
Page 99:
should be [direction] not [dir]
Page 99:
Under the [FORM submitted with POST] section, the code says <input type="password" name = "pass' - note the single quote at the end of pass
Page 107:
$data should be $date
Page 109:
Check the "setcookie delete" description
Page 122:
the examples should read public $var1, $var2, $var3 instead of public var1
Page 123:
static public function baz() :: public should come before static
Page 123:
output will display "Hello World... Notice: Undefined property
Page 141:
This chapter says it reviews PDO and database connectivity but it never does... we need to either write something up or take this part out
Page 143:
"one-to-one... correspond to every row in the parent"... should read "each row in the parent"
Page 147:
"suppose we wanted to create a unique index"... but then an ordinary index is created
Page 147:
"isbn ...references book (id)" should say "references book (isbn)"
Page 149:
Ender\'s Game should be escaped with 2 single quotes as such Ender''s Game
Page 153:
sql statement is incomplete, only 2 of 3 tables are joined. Publisher table is missing from the joins
Page 158:
if (is_null(self::$_singleton)) {self::$_singleton = new DB(); - conflicts with the "the getInstance() method, which checks whether the static property $_connection has been iniitialized and, if it hasn't sets it to a new instance of DB
Page 164:
delete this line: function seek($key)
Page 165:
class myData implements Iterator (needed capital I on iterator)
Page 165:
$_myData and $_current needs to remove the underscore
Page 178:
Parsing XML Documents - text is confusing here
Page 184:
$dom->load('library.xml');
Page 184:
should read DomDocument::loadHTMLFile() (capitalize HTML)
Page 185:
DomXpath should read DomXPath
Page 204:
should read " the worst that can happen"
Page 207:
last line, 2nd par - should read "While setting register_globals to Off is the preferred approach"
Page 214:
Reads "Since 1=1 is always true and - begins..." - should read "Since 1=1 is always true and -- begins"
Page 228:
SEEK_CURRENT should be SEEK_CUR
Page 231:
reads "a directory which has the same file as an existing file" - should read "a directory which has the same name as an existing file"
Page 231:
should read "Note that, normally, only the last directory"
Page 231:
should read "Checks if the path is executable
Page 234:
"Stream contexts are created using stream_create_context()" - should read "Stream contexts are created using stream_context_create()"
2008-05-07
2008-04-20
Google App Engine
Appengine is fresh and buzzing, check it out if you havent heard of it yet. If only it was not working for python only. I dont need to tell you what is the language of Web, do i?:)
Also Salesforce and Google integration got some fresh news.
Also Salesforce and Google integration got some fresh news.
2008-04-13
Amoba going opensource
I have published my gomoku (5 in a row) game as a free-to-take project on sourceforge. I was not touching the source since 2004 now, and i dont plan to develop further myself. If anyone finds it interesting, or just wants snippets from the code, feel free to use it, it is licensed under GPL.
The latest executable is still available from my homepage, or from sourceforge itself. Sourcecode is available in SVN repo.
The latest executable is still available from my homepage, or from sourceforge itself. Sourcecode is available in SVN repo.
Zend Framework and Smarty
I am about to start a new project based on ZF, the library looks like a beast to be tamed at first sight, i still need to learn a lot about it. I was doing some preliminary investigations how to use Smarty with its Zend_View component. A lot of info on the web looks outdated, but i found a great blog here (and old version here). Jani is a young Finnish developer-jedi, and i really like his writings about ZF and templating engines, just to list a few of them:
During my investigations, i also came across the blog of Matthew Weier O'Phinney, who is an actual developer of ZF, so it might be worth keeping an eye on him:)
- Different PHP template engines
- Introduction to Zend_Layout (updated for ZF 1.5!)
- Client-side validation with Zend_Form
During my investigations, i also came across the blog of Matthew Weier O'Phinney, who is an actual developer of ZF, so it might be worth keeping an eye on him:)
2008-04-08
CSS Naked Day
Tomorrow is CSS Naked Day. Strip all your styles from your webpage, if you dare! I think i won't be that bold, but its an interesting initiative from Dustin Diaz, and so far some 700 sites have joined.
Becoming ZCE
Ok, so here is what kept me busy last week. Now i am officially Zend Certified (PHP5) Engineer :)
2008-04-03
Adobe AIR for Linux (Alpha)
Adobe published their first version of AIR for Linux. It lacks some features yet, but worth trying out.
2008-04-01
Save the developer + css support in IE
I recently came accross this site. Great to spread the word amongst people stuck with IE6. Although i am not that big fan of IE7 either, and i would definitely change the order of the recommendations.
[UPDATE: the above link was removed. Read on here.]
Why IE6 sucks? There are many issues, just to grab one, it is poor CSS support. Related to this there is a new doc from Microsoft showing the css selector support in running versions of Explorer. That might be useful to check one day.
[UPDATE: the above link was removed. Read on here.]
Why IE6 sucks? There are many issues, just to grab one, it is poor CSS support. Related to this there is a new doc from Microsoft showing the css selector support in running versions of Explorer. That might be useful to check one day.
Photoshop Express
Adobe just released their long awaited Photoshop Express. An in-browser image manipulation solution that is supposed to have some similar feel/functionality to the desktop version. While the resemblance is quite weak, there are some nice things you can do in the Flex-based Express edition. To upload your own photos you need to register, but a test-drive is available.
Acid3 fever
Just one day after Opera passing 100/100 on Acid3 appeared in the news, Safari team also announced Webkit to be passing the test. Apparently the test was also changing in the meanwhile, but they are both doing pretty well anyways. What about Firefox? Well, due to the upcoming release of version 3, it is not a subject of interest at the moment.
[Source: Ajaxian]
[Source: Ajaxian]
A new guy in WYSIWYG-town
Honestly i havent heard much about jTagEditor before, but apparently it got renamed as markItUp, and checking out their examples, all seems fine.
It is based on jQuery and intends to be a lightweight editor that you can use to produce normal html code, but you can squeeze out bbcode, wiki or markdown syntax as well.
It is based on jQuery and intends to be a lightweight editor that you can use to produce normal html code, but you can squeeze out bbcode, wiki or markdown syntax as well.
Google docs goes offline
Hopefully this one is not an April fool's joke. Pretty soon we will be able to edit our documents while not connected to the Internet. More details and demo video here.
Subscribe to:
Posts (Atom)