3 ms·
It has a class system that was bolted on after the fact, leading to tons of inconsistencies. It has "closures", but they're not proper lexical closures since yo
by nbouscal 13y ago
It has a class system that was bolted on after the fact, leading to tons of inconsistencies. It has "closures", but they're not proper lexical closures since you have to explicitly declare what part of the lexical scope you want your anonymous functions to have access to (rather than the interpreter figuring out the free variables like a sane implementation). Named functions can't even do that much (the fact that they're separate implementations being an indicator that they're designed poorly. Unsurprising, given anonymous functions were added post hoc). If by "good reflection style features" you mean the god-awful isset-on-every-line-of-code garbage, I'll pass, thank you. It's Turing complete and can get the job done, yes, but there's absolutely no part of it that I would call "very good". The best it ever reaches, in my experience (several years, for what little that's worth), is "doesn't quite make me want to vomit".
(Yes, I'm a bit bigoted towards PHP. I recognize that. Having to write it every day can do that to a person.)