「PHPのsort関数は相当おかしい」

http://d.hatena.ne.jp/hnw/20090227
メモ.本当にPHPって,忘れた頃にこの手のネタで出てくるなあ.

ソート型のフラグ:

  • SORT_REGULAR - 通常通りに項目を比較 (型は変更しません)

「そもそも『通常通り』ってなんなのよ?」というのが,まず第一に出る疑問.ぜんぜん専門的でなく,説明が不十分すぎる.本当にマニュアルにこんな説明が書いてあるとしたら,そのマニュアルが糞だと思う.「マニュアルは信用できないから,言語の入門書を読んでね.」ということかな?

  • なんと、同じ要素を持つ配列をソートした結果が異なっています。
  • 要するに、これはsortの第2引数のデフォルト値、SORT_REGULARがマトモじゃないってことです。sortの比較関数に推移律が成立しない演算子を使うと何が起こるかなんて、少し考えれば誰でもわかりそうなもんですよね。

…… まあPHPって,そういうセンスの悪い言語だよねと.

おまけにSORT_REGULARって名前もイマイチ.regular言われると「"regular expression"かな?」という誤解を生みかねない.*1

*1:"regular expression"を表す値の名前として"SORT_REGULAR"を使うのはお世辞にも良いセンスとは言えないが,そもそもPHPがセンスの悪い言語だからこそこういう問題が定期的に出てくるわけで.