> Rule of Repair violation. The only place I really see this is in the fact that it's a loosely-typed (and dynamically-typed) language with implicit conversion. While these attributes certainly annoy programmers used to a different type of language, there's nothing inherently wrong with them.
1) Identifiers magically turn into strings, mostly I believe because function handlers have just been strings until relatively recently.
echo FOO; // prints FOO
2) Magic quotes. Yes, they're finally gone, but the fact that some dork put them in there in the first place proves that said dork had no business designing, implementing, distributing, and promoting a language.