PHPの特徴(メリット・デメリット・その他)についての私見
技術的特徴のみならず、様々な観点からPHPの特徴をまとめてみました。あくまで現時点での自分の見解です。そもそも他の言語に詳しくないことによる的外れな意見などもあるとは思いますが、参考の程に見ていただけたらと思います。
...とその前に最初に言ってしまいますと、PHPはこれに尽きると思います。
「緩くて自由でとっつきやすい」……いい意味でも悪い意味でも
PHPの特徴
- メリットの観点から
- 手軽でスピード感のある開発が可能
- 優しい言語。プログラミング初心者にとってもとっつきやすい
- 例えば、初心者が動作を確認するまでの簡単さ。PHPだとxamppなどのツールがあり、ホスティングサービスなどではPHPを提供しているサービスも多い。「先ずはプログラムが動くことを実感したい」であろう学習者のモチベーションを保ち続けながら学習を進めることが出来る
- 記事の豊富さ(問題解決の容易さ)
- デメリットの観点から
- 緩すぎる言語であること
- 緩いことはPHPの代表的な特徴であり、これに助けられることもあるが、反面、緩すぎることで様々な問題を引き起こしてしまう
- 後述するが、自動の型変換機能が基本的に何に対しても適用されてしまうことなどがその代表例。文字列や数値といった性質の全く異なる型の変換すら可能であることは、PHPのよくないところであると思う
- 他の例として、関数の返り値に何でも宣言出来てしまうのは、よくない構造である。確かにbooleanか配列(あるいは文字列)を返す関数であれば、チェックも併せて行えるため、活用出来る機会もあるかもしれないが、配列か文字列を返すような関数は、後の処理を分散しなければならなくなり、却って複雑なコードに陥ってしまう危険性がある
- 個人的な思いとして、この緩すぎさがもう少し固くなってくれれば、もっと良い言語になるのではないかと考えている
- その他の観点から
- 型の自動的変換機能
- メリットでもあり、デメリットでもある
- 比較的小規模な開発ではメリットと出来る。というのも、型の自動変換機能によってコードの量などを節約し、スピード感のある開発が可能になるからである。
- 分かりやすい例は数値の自動変換である。本来は、数値型であってもintやfloatなど様々な種類が存在するが、PHPでは数値の型を気にせずに計算を行うことが出来る
- ただし、文字列と数値を組み合わせるような場合には、明示的にキャストなどをしておいた方がよい
- 型を気にしないことは、しばしば不具合の温床となるという点においてデメリットであると思う。一番起きやすいのは数値と文字列を連結したりすることによる不具合である。(大規模な案件でPHPというよりJavaが使われたりやすい事情はこのあたりのPHPの”ゆるさ”が影響していると思われる)
- 常に型については念頭においた上でこの機能を活用するべきである
- 配列関連の扱いやすさ
終わりに
参照サイトなどを見つつ、自分がこれまで経験したこと等を元にPHPの特徴を書いていきましたが、改めてPHPでも関数の書き方などを見直す機会となりました。今後別の言語などを使っていく機会があれば、その時に改めてこのPHPの特徴などを更新していこうかとかと思います。
参照サイト