PHPの引数順と最初の開発者のインタビュー

  • 2018年12月11日
  • 2018年12月11日
  • PHP

 PHPStormには次の画像の様な機能、呼び出し先の関数の引数名を表示するという機能が備わっています。

 ことPHPにおいてこの機能は非常に役立ってくれています。というのもPHPに備わっている関数の引数はその順番と役割が関数によって変わることがしばしばあるためです。例えば、array_filter,array_map,array_walkという関数があります。これらはコールバックを配列に適用する関数です。これらをPHPStorm上で呼び出すと次の様な画面が見えます。

 各引数の名前で察する通り、array_mapのみcallbackを第一引数で指定する必要があります。これはいささか極端な例ですが、同じように似た役割、挙動の関数において引数の順番と役割が異なるということが起こることがあります。このため生のPHPを記述するためにはたびたびリファレンスなりPHPDocなりの何かを参照する必要があります。
 この関数の引数の順番のようなPHPの整合性についてPHPの生みの親であるラスマス・ラードフ氏は次のように述べています。
PHPの生みの親,ラスマス・ラードフ氏インタビュー:レポート|gihyo.jp … 技術評論社

私たちがPHPの整合性のなさを直さないと言ってよく非難する人がいますが,PHPはそもそもそれが問題になるようなものではないのです。PHPは結局,ライブラリやその他基盤となっているテクノロジーへのショートカットにすぎません。それなのに,どうして誰もがPHPレベルでの整合性を求めるのか,私には分かりません。整合性をとるのはフレームワークの役割です。フレームワークは問題を解決するための全体的なアプローチを定める場所ですから。PHPはその下のレベルにあって,ただ低レベルにあるライブラリとか関数とかへのアクセスを提供するだけの存在です。

 この発言の前にはPHPよりも下位層の関数と1対1で対応した何らかの関数をPHPは持っている、PHPは垂直的に整合性を持っている、という趣旨の発言があります。PHPは中間言語に近いもので更に上級言語のフレームワークを使えと言っているわけです。最近自分はLaravelばかり触っていますが、実際生のPHPに比べて格段に書きやすくシンプルにまとまっています。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG