質問: FALSE ] ) ``` (書いてみてちょっと比較対象がよくないような気もしました・・・) これはどうしてこういうぐちゃぐちゃなことになっているのでしょうか? 何か法則性はあるのでしょうか? それとも何も法則性はなくて、PHPによくある「歴史的な経緯」なのでしょうか? (せめてPythonみたいにキーワード引数(`somefunction(msg='message')`)が使えるようになってくれればよいのですが) > > 参考 > > > PHP: array_filter - Manual > > > > > PHP: in_array - Manual > > > > >
回答: 配列からの探索系(in_array、array_key_exists)と、可変個の配列を取る加減上コールバックを先に持ってくるほかないarray_mapを例外として、大半の関数はarrayを1つ目に取ります。 ただ、preg_matchやin_arrayでは検索パターンが第1引数なのに対して、strposやstrstrでは第2引数になるなど、こちらも引数の位置がバラバラです。 ...極めつけには、implodeが「歴史的な理由により、引数をどちら の順番でも受けつけることが可能です。」とのことで、途中で変えたものすらあるようです。「まったく規則性の見えない関数群」は、もはやPHPのお家芸という感もあります。