$foo = array ( DO => "hello", DA => "bye"); <--dies horribly
$foo = array ( "DO" => "hello", DA => "bye"); <--works fine
Solution
======
DO is a reserved word. As in a do while() loop.
If you are trying to get the string DO as an array index, you should put
quotes around it as you did in your second example. And you really should
also put quotes around DA since you want to treat it as a string. It is
an implementation side-effect that non-reserved words work as strings even
though they are not quoted. This behaviour should not be relied upon to
work in future versions.