- 「PHPで何ができるの?」
- 「初心者がPHPを覚えるには、どう勉強するといい?」
あなたは、初心者はPHPから始めるといいと聞いたことがあるけど、何ができるのか知らないのではないでしょうか?
簡単に言うと、PHPはWebサービスを開発するのに最敵なプログラミング言語です。
この記事では、PHPを用いることで具体的に何ができ、どう学習すると効率的なのかプログラミングを知らない初心者にも分かりやすく解説しています。
PHPとは
PHPは、Webページを作成するためのあらゆる機能を取り込んでおり、Web開発に適したプログラミング言語です。
PHPが誕生したのは、1990年代。それ以前は、Webページを作成する際、自分の手でHTML、CSSを記述していましたが、PHPを入れることにより、データベースとの連携機能を始めとした、動的なWebページを作成できるようになりました。
また、PHPの構文は他のプログラミング言語と比較してもシンプルであることが特徴で、初心者が手を付けやすいのも一つの特徴です。
PHPでできること(何ができる?)
PHPはWeb開発に適したプログラミング言語ですが、具体的に何ができるのか説明します。
お問い合わせフォームの作成
1つ目は、お問い合わせフォームの作成です。
お問い合わせフォームは、名前、アドレス、内容などを入力し、ボタンを押すとWebサーバー側に送信される機能です。
大半のWebサイトで見ることができますね。お問い合わせフォームに限らず、Webサイト上の入力欄(「フォーム」という)に何かしらの内容を入力して、サーバーに送信する機能はWebサイトにおいて必要最低限の機能です。
PHPでは、このようなお問い合わせフォームを作成できます。具体的にいうと、ブラウザ上で表示させる入力欄はHTMLやCSSを用いて記述します。そして、サーバーに送信された後、入力された内容をどのように扱うかは、PHPを使うことで実装することになります。
検索機能の作成
PHPがでできること2つ目は、検索機能の作成です。
検索機能は、GoogleやYahoo、そのほかECサイトの商品検索やブログの記事検索といったように、ほとんどのWebサイトにおいて利用される機能ですね。
これも、お問い合わせフォームの部分で述べたように、ブラウザの検索欄にキーワードを入力し、キーワードをサーバーに送信する部分は共通しています。これに加えて、検索機能の実現には、データベースへのアクセス機能を取り入れるのが必須です。これについても、PHPを用いれば容易に実装することができます。
PHPでは、データベースへのアクセスについて、接続、検索、切断、さらにはデータベースの更新やデータ挿入、削除といった基本操作について実装することができます。これを用いて、より複雑な検索機能を実装できます。
ログイン機能の作成
できること3つ目はログイン機能作成です。
ログイン機能も、ほとんどのWebサイトで見かける機能ですね。
ログイン前のページでは、例えばメールアドレスとパスワードの入力欄が表示されており、入力・サーバーに送信することでログイン後のページを表示しますよね。この部分は、お問い合わせフォームの機能と検索機能を応用すれば実現できます。
問題は2回目以降のアクセスです。初回アクセスでログインした以降は、ログイン前のページを介さずに、ログイン後のページに飛びますよね。この仕組みを理解するには、セッションというPHPの機能を用いることで実現できます。
セッションは、データを保存する領域のことです。初回アクセスでログインした際、Webサーバー側には、ログインしたユーザーのIDをセッションに保存します。また、ログイン結果をブラウザに送る際にも、ユーザーIDをブラウザ側に送信し保存します(ブラウザ側にデータを保存する機能を「Cookie」という)。
そして、2回目以降のアクセスの際は、ブラウザで保存したユーザーIDをサーバーに送信し、サーバー側で照合することで、ログイン画面に活かせる必要もなく、ログイン後のページにアクセスできるのです。
予約システムの作成
4つ目は、予約システムの作成です。
ログイン機能までで述べた機能を応用すれば、大抵の機能を実装できます。
例えば、ホテルの予約、飛行機の予約といった予約システムは、予約する日にち、時間帯、人数、名前、性別、電話番号などの基本的な情報を入力して、「予約完了」といったボタンを押すことでサーバーに送信されます。入力項目こそ多いものの、お問い合わせフォームと仕組みは同じであることが分かりますよね。
ECサイトの開発
PHPはECサイトの開発も可能です。
ECサイト(EC:Electronic Commerce)は、Webサイト上で商品を販売するサイトのことです。Amazonはその最たる例ですね。
ECサイトで必要な機能は、主に商品の検索機能、商品の詳細を表示する機能、商品を購入(予約)する機能と言えるでしょう。機能こそ多いものの、一つ一つ分解していければ、基本機能の組み合わせでできていることが分かりますね。
SNSの開発
SNSの開発もPHPですることができます。
Twitter、Instagramといったソーシャルネットワーキングサービス(SNS)も、PHPの諸機能を応用して開発できます。
SNSの機能は、ログイン機能、つぶやきや写真などの投稿機能、つぶやきや写真、ユーザーの検索機能といったものがあります。やはりこれも全体で見ると大規模ですが、一つ一つ見ていければ実装の難易度は低くなります。
グループウェアの作成
PHPでグループウェの作成もすることができます。
グループウェアとは、会社や団体といった組織内のネットワークを利用して情報共有するためのシステムのことです。例えば、会社であれば業務効率化を目的に、個々のスケジュールの管理、連携やメール、チャットと言ったメッセージ共有、会議室の予約などさまざまですね。
グループウェアにどのような機能を盛り込むかによりますが、基本的には、ユーザー情報をはじめとした業務遂行に必要な情報をデータベース化しておき、PHPを用いてデータの作成、削除、参照、更新操作を実装することでさまざまな機能を実装できます
API連携
PHPはAPI連携も可能です。
API連携をすることで、すでに公開されているWebサービスが提供している機能を用いて、自身の作成しているWebサービスと連携させることができます。これをAPI(Application Program Interface)連携といいます。
ときどき、あるサービスのログインページを見ると、「Twitterアカウントでログイン」と言ったように、既存のSNSでログインできる機能に出くわすことがありますよね。これは、TwitterがAPIを提供しており、それを利用しているのです。
ほかにも、Google Mapを自身のWebサイト上で表示させたい場合も、Google Map APIというGoogleが提供しているAPIを自身のWebサイトで呼び出すことで実現させているのです。
APIは上記以外にもたくさんありますので、それらを上手に利用することで便利で多機能なWebサービスを構築できるのです。
ファイル操作
ファイル操作も可能です。
Webサイト上にテキストファイルなどをアップロードして、中身を参照したり、逆にWebサーバー上でファイルを生成し、ブラウザにファイルを送信したりと言ったこともPHPで可能となっています。
具体例として、ログファイルについて説明します。ログファイルはWebサーバー上で発生した出来事を一定の形式で記録したファイルのことです。もし、Webサーバー上で何らかのトラブルが発生した場合、このログファイルを解析することで、原因の究明に努めることになります。
PHPでできないこと
ここまで、PHPはWeb開発するうえで必要な機能を実装できることが分かりました。ここからは、PHPでは実現できないことについて説明します。
Webデザイン
PHPではWebデザインを構築することはできません。
Webデザインは、Webページのコンテンツの配置の仕方や装飾と言った、デザイン面を構築する部分です。
Webデザインは、PhotoshopやIllustratorといったツールを用いて制作します。そのほか、JavaScriptといった、クライアントサイドのスクリプト言語の取得なども必須となっています。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/javascript-can” target=”_blank”]
スマホアプリの開発
スマホアプリについても、PHPで開発することはできません。
もし、開発したければ、JavaやKotlin、Swiftといったプログラミング言語を用いる必要があります。Java、KotlinはAndroidアプリ、SwiftはIOSアプリの開発で利用されています。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/java-can” target=”_blank”]
[keni-linkcard url=”https://program-yarouyo.com/swift-can” target=”_blank”]
AI・機械学習
AIや機械学習についても、PHPで開発することはできません。
AI、機械学習で用いられるプログラミング言語の一つに、Pythonがあります。このプログラミング言語は、Googleが指定する「Google三大言語」の一つに数えられ、AIの分野で多く利用されています。構文もシンプルであるため、初心者が取得しやすいプログラミング言語であることも特徴です。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/python-can” target=”_blank”]
PHPは初心者に難しい?
結論から言うと、PHPは初心者にとって簡単なプログラミング言語であると言えます。
上で話したとおり、他のプログラミング言語と比較して、構文がシンプルで分かりやすく、学習コストを抑えることができるのが理由です。
また、LaravelやCakePHPといった、PHPのフレームワークを利用することで、ある程度下地が整った状態から、Webサービスを開発することができ、効率よく作業ができるのも、PHPの強みの一つです。
PHPを学ぶメリット・デメリット
メリット
PHPを使うメリットは、主に以下の5つが挙げられます。
- 初心者でも比較的かんたん
- 情報量が多い
- 求人数が多い
- 殆どのレンタルサーバーに対応している
- 便利なフレームワークが多い
初心者でも比較的かんたん
1つ目のメリットは、プログラミング初心者でも比較的簡単に取得できることです。
PHPは、他のプログラミング言語よりも言語仕様が平易であるため覚えやすいです。
実際、ゼロからプログラミング言語について勉強しようと思った場合、最初に学ぶべきプログラミング言語として注目されています。
その他にも、後述するように情報が充実していることも、初心者が簡単に取得できる理由の一つになります。
情報量が多い
2つ目のメリットは、PHPに関する情報の量が多いことです。
現在でもWeb開発において広く利用されているPHPは、教本や解説記事が豊富で、内容もより充実しています。
関数などの使い方の解説のほかにも、あるエラーについての対処法なども事細かに説明されているので、初心者にもやさしいです。
その一方で、プログラミングを勉強するときには、膨大な情報のなかから自分の欲しい情報を適切に検索する力が必要になります。
求人数が多い
3つ目のメリットは、PHPを採用している求人の数が多いことです。
先述したように、PHPはWeb開発において広く採用されており、エンジニア市場における求人数も多いことが特徴的です。
プログラミング言語別の平均年収を見てみると、PHPは538万円と全体で見ても上位に位置します。
先述したとおり、PHPは初心者でも比較的マスターしやすいプログラミング言語です。ひとたびPHPを取得してしまえば、エンジニアとして転職するときにも困ることはほぼないでしょう。
ほとんどのレンタルサーバーに対応している
4つ目のメリットは、ほとんどのレンタルサーバーでPHPが対応していることです。
実際に開発したWebサービスを公開するときは、そのWebサービスをサーバーに設置しなければなりません。
サーバーとなるマシンを自分で購入することも可能ですが、現在ではさくらインターネット、ロリポップなど、サーバーを提供するサービスが数多くあり、それらを利用してサーバーをレンタルするのが普通となっています。
レンタルサーバーごとに、対応しているプログラミング言語は異なっていますが、PHPはほとんどのレンタルサーバーに対応しています。
つまり、PHPで作られたWebサービスであれば、レンタルサーバーの選択肢が広がるということです。レンタル料金、サイズなど、あらゆる視点からそのWebサービスに合ったレンタルサーバーを選べるのは、大きなメリットであると言えます。
便利なフレームワークが多い
5つ目のメリットは、開発するうえで便利なフレームワークが多く用意されていることです。
PHPに限らず、プログラミング言語には、開発をより効率よく遂行するために用意された、プログラムのひな型が用意されています。これは「フレームワーク」と呼ばれ、これを利用することで、必須となる機能を一から作ることなくその機能を利用できます。
今日のシステム開発では、このフレームワークを使うのがマストとなっています。また、フレームワークも一つではなく、複数用意されています。
PHPも例外ではなく、多くのフレームワークが公開されています。代表的なものに、CakePHP、Laravel、Symfonyが挙げられます。
特に、Laravelは最近になって人気が出てきているフレームワークです。今後もPHPを採用している求人ではLaravelを利用する可能性が高いです。したがって、PHPを学ぶときにはフレームワークも一緒に学ぶことをおすすめします。
デメリット
一方、PHPを使うデメリットは以下の3つが挙げられます。
- 記述の自由度が高い
- セキュリティが弱い
- 実行速度が遅い
記述の自由度が高い
1つ目のデメリットは、記述の自由度が高いことです。
PHPはプログラムを記述する際の自由度が比較的高いです。自由度が高いことは、一見するとメリットのように捉えがちです。
しかし、複数のメンバーで開発するとなると話は別です。メンバーごとに記述レベルが異なると、コードの見通しを悪くしてしまいます。自分で書いているところは理解できても、他のメンバーから見たら読みづらいということはよくあることです。
逆に、メンバー間でプログラミングの書き方のルールを定めて、そのルールにみんなが従って書くように意識すれば、統一感のあるコードが出来上がり、ひいてはメンテナンスもしやすくなります。
まとめると、記述の自由度が高いことが必ずしもコードの質の向上につながるとは限らないので、プログラマー側でルールを定義してそれに従うという意識が必要ということです。
セキュリティが弱い
2つ目のデメリットは、セキュリティが弱いことです。
昨今、セキュリティの穴を突かれ個人情報などが盗まれ、会社の信用問題に発展するケースが多発しています。
システム開発をするうえで、セキュリティの担保は大変重要な要素です。その点でいうと、PHPは他のプログラミング言語と比べてセキュリティが弱いです。
多くのアップデートによって着実に改善はされているものの、未だに課題は多く残っているのが現状です。
したがって、PHPでプログラミングする場合には、常にセキュリティを意識しなければなりません。
セキュリティ面が強化されたフレームワークを利用することで、ある程度セキュリティのあるシステムが出来ます。ほかには、PHP自体のアップデートを行うことも大切です。
実行速度が遅い
3つ目のデメリットは、実行速度が遅いことです。
PHPは、インタプリタ方式のプログラミング言語に分類されます。インタプリタは、プログラムを実行するときに、コードを1行ずつ機械語に変換して、命令を処理する方式です。
PHPのようなインタプリタ方式のプログラミング言語は、実行速度が遅いのがデメリットとして挙げられます。
Webサービスにおいては、ページを高速で表示するなど、速度を要求される場面があるため、実行速度の遅さはネックとなります。
しかし、最近のアップデートにより、実行速度の遅さは改善を見せているので、さほど気にすることはないでしょう。
PHPのおすすめ学習方法
PHPのおすすめの学習方法は、プログラミングスクールで学習することです。
- 分からないことがあったらすぐに質問しできるから効率的。つまづかない。
- 分かりにくいところは現役エンジニアが平たく教えてくれる。そのため挫折しにくい
- 就職・転職に必要なポートフォリオ作成をプログラミングスクールが支援してくれる
- 最新のエンジニア界隈の話が聞ける。情報収集できる。
- PHPをマスターするための効率的な勉強方法がわかる
上記のように、プログラミングスクールなら独学では得られないメリットが多数あります。
独学するよりもお金がかかるのは確かですが、プログラミングスクールに入れば就職・転職できる確率は上がりますし、上達も早くなります。
勉強代は、エンジニア転職・フリーランスとして独立するための投資です。独学して挫折する前に、スクールのサポートを受けながら効率的に学習しましょう!
PHPを学習するのにおすすめのプログラミングスクールは、TechAcademyです!
TechAcademyならPHPの専門コース「PHP/Laravelコース」があって、
そこではHTML・CSS・PHPの基礎から始まり、LaravelやSQLなども学習しながら、卒業までにオリジナルWEBサービスの開発を目指します。
料金も他のスクールよりも格安。これからPHPを1から学習したい人にピッタリなスクールなので、是非チェックしてみて下さい。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/php-school” target=”_blank”]