It's technically a 'language construct', but it sure does seem like a function. Same with PHP's 'list'. It's not good syntax, in my opinion also. It doesn't even seem like syntax!
Yeah, call_user_func('strlen', 'hello world') works but call_user_func('array', 'hello world') does not. But for ugly syntax, it's hard to beat the $ sigil being required everywhere for no reason at all (unlike Perl where it actually did something).
You're right, I was a bit hasty and didn't consider that. It sure does look like a function though, where other languages typically use {} or something similar.
I could probably rant on PHP syntax all day long, but it's too off topic here.