This essentially boils down to the fact that your development environment and production environment were running completely different software. This isn't a PHP-specific problem.<p>> the designers’ strategy to break code compatibility between PHP versions only for aesthetic reasons (array(a,b,c) vs [a, b, c]) is bound to lose the confidence of its users sooner or later.<p>This is not a backwards-compatibility issue. You used features which were introduced in 5.4, and expected them to work in 5.3.
Okay why are we still being worked up by simple things such as array initialization ? [] vs Array() ? I don't see what code you're writing and how fast, that this shorthand comes into effect and makes any difference to you?
If something introduced in newer version doesn't run in the older, how it's breaking backward compatibility? It would've been if the PHP5.3 version of your code didn't work in 5.4.