もともとAttacking PHPと言う記事にあった、PHPがダメな理由のリストをまつもとゆきひろさんが翻訳したものですが
  • いろんなものがfalseだったりするせいで、新たな比較演算子「===」が必要
  • hashやlistがobjectが区別できない
  • オブジェクト指向機能が壊れている
  • lambda(無名関数)がない。create_functionはlambdaじゃない
  • short_open_tagsやらsafe_modeやらregister_globalsがonになってるかもしれない
  • 一貫性のない名前(str_replace,strlen,parse_strとか)
  • 引数の順番がわかりにくい(in_arrayとかstrposとか)
  • strpos('abcd','a')は0を返すが、0は偽である
  • PHPで書かれたたくさんのアプリがあるがどれもHTMLとロジックが分離されてない(本当?)
  • 「PHPは初心者に学びやすい」と言われる。確かにそうかもしれないが、 おかげでどれだけのSQLインジェクションやらXSS脆弱性やら、 ひどいコードが放置されていることか
  • グローバル。使うんじゃないってば。


今は一切使いませんが、仕事で2回ほどPHPをやったことがあります。2年くらいやったかなぁ。上に書いてある殆どのことを実感しました。
個人的には、
変数名にいちいち$をつけなければならない
メンバアクセスが.(ドット)ではなく -> 、、、
というのも面倒だなぁと感じましたが。
コード書いてるとしょっちゅうShiftキーを押さなければならなくなります。。。些細なことですが、こういうのって人によっては意外とストレスになります。まあ単に私の好き嫌いですが。

でも、指摘されているように関数の名前に一貫性がないのにはほんとにうんざりした記憶があります。 引数の順番もなんか統一されてなくて、都度ヘルプで確認するはめになりました。
記法なんかは好みで片付けられますが、命名規則や引数順序などに一貫性が無いというのは、言語として終わってる。だってプログラム作るときってそういうの気をつけて書くのに、肝心の言語のライブラリがそんなんじゃ。
やってた当時、「もう,この言語、駄目だな、、、」と何度か思いました、、、。