The frameworks I tend to lean toward are Lithium and CakePHP.
Lithium is built from the ground up to be PHP 5.3+ native - so it is WICKED fast and insanely efficient. Objectively, I definitely prefer it over Cake, Zend, Symfony, Yii, etc. Also, Lithium was created by the guys responsible for Cake's very existence (it started out as Cake3, but was so different that it split off into it's own project entirely).
The one area where Lithium sort of hurts, is the lack of general community. You can get pretty good support via IRC, and the developers are extremely helpful - but it also doesn't have the following or thorough documentation that the "big boys" like Cake and Zend have, which is a shame.
I'm also very happy with Cake 2, as it's incorporated a ridiculous number of improvements for PHP 5.2.8+ (but it's still not entirely 5.3+ native). They have also revamped the insane conventions so that they actually make logical and consistent sense now (before 2.0, the conventions were completely inconsistent from model to view to controller). Cake is also better documented than Lithium and (I feel) even Zend.
All that said, Zend is pretty much the status quo. I no longer use it due to the simple fact that it is painfully slow and underperformant. But that's what happens when you have a massive framework created specifically to shore up weaknesses in earlier versions of PHP. I'm keeping a close eye on Zend 2 (which is currently in beta), as the main focus appears to be a hard push to take full advantage of PHP 5.3 (which, FYI, allows lambdas, magic methods, and all manner of other awesomeness).
So my biased opinion is: as of right now, Lithium kills everything else. Not by a little, but by a lot.
Cake 2 comes in a very distant second (not fully PHP 5.3 optimized). I wouldn't even think of touching Zend 1.xx, but once Zend 2 is officially available and production ready, it should absolutely be worth a good, serious look (unfortunately, that could be MONTHS away).
substr(arg1, arg2, arg3)or$obj->subString(string, arg2, arg3)is just a naming convention. You can wrap PHP's string functions (which are nearly exact copy of C's) in a class and create "object" interface yourself. Or, since you don't like it, give RoR a shot and have more fun.