I am more or less an intermediate PHP hacker. Most of my experience is in Perl and mod_perl.
Right now, what I find the most frustrating about PHP is the embedded model. It seems that you have to jump through a lot of hoops to work around that. Maybe once you get used to jumping through those hoops it is okay, but (for me anyway) it seems like I am working against the language when I want to abstract webpages away from their files, for example.
It seems to me that this is one of those areas where the easy-access part (templating built right into the way you code) starts making it harder to do more complicated things.