I made a patch to implement constant folding optimization in the Zend engine.
The patch is available at: http://web.ist.utl.pt/nuno.lopes/zend_constant_folding.txt
I like the idea a lot, however I think this patch has one significant downside - as far as I understand, it doesn't enable constant expressions in constant contexts. I.e. I can do $a = 2+2 and get it evaluated but I can't do function foo($a = 2+2) or const $a = 2+2. If we moved this to the parser level I think we could do both.
Well we don't support that syntax at this moment. If you are saying that we could add support for such syntax.. it does seem a good idea, but in that case we would need to modify a few rules of the grammar (like adding a const_expr production, and allow static_scalar derive it, etc..).
If others agree with this syntax, I can take a look in implementing it.
Nuno