LANWAY JOURNAL あなたの知りたいを叶えるメディア

  • ナレッジ記事
  • エンジニア

PHPの基礎を習得してWebアプリケーション開発の第一歩を踏み出そう

業務効率化にはさまざまな手法があり、その中でもプログラミングは最も効果的なビジネススキルといっても過言ではありません。小学校ではすでにプログラミングの授業が始まっており、2022年度からは高校でも必修科目になりました。
これまではアプリやゲームを作るプログラマーにとって必要な技術でしたが、近い将来あらゆる職種でプログラミングの知識が問われる社会になることが予測できます。

プログラミング学習を始めるにあたって、PHPと呼ばれる言語を選択する方は多く人気もあります。
なぜプログラミング入門としてPHP言語が選ばれるのか、特徴や学習するメリットを具体的な事例を交えながら解説します。

PHP言語とは

PHPとはWebサイト制作やWebサービスの構築などでよく使われるプログラミング言語のひとつです。主にWebアプリケーション開発で用いられており、ブラウザを利用したシステムで広く利用されています。
入力フォームから文字や画像を登録したり、キーワードからの検索機能を利用したことはありませんか?ブラウザ画面の裏側ではプログラムが処理を担っており、代表的な言語としてPHPが広く認知されています。

PHPを習得するメリット

サーバーサイドの言語は数多く存在しますが、なぜ初心者がPHPを選ぶケースが多いのでしょうか。主な理由としては「学習コストが低い」「シンプルで理解しやすい」「フレームワークの充実」などが挙げられます。
PHPエンジニアの数に比例して参考書やネットの情報量も多いことから、需要も依然として多いこともメリットといえます。

他の言語との組み合わせが可能

PHPは他の言語の中に埋め込むようにソースコードが書けます。ユーザーの目に触れる言語(HTML/CSSやJavaScript)と組み合わせることで、Webサイト構築やWebアプリケーション開発が実現できるのです。
PHPは目に見えるブラウザ側(フロントエンド)とは異なり、目に見えないWebサーバー側で動くためバックエンドのプログラミング言語として分類されています。

HTML/CSS

掲載情報の更新を必要としない静的なWebページであれば、基本的にHTMLでレイアウトを作成しながらCSSで装飾を設定します。
一方でTOPページによくある新着情報一覧やサイト内検索といったサーバーでの処理が必要な動的ページの場合、HTMLの中にPHP(サーバーサイド)のコードを埋め込む必要があります。

ただしPHPを埋め込む際には前提条件として、サーバーサイドのプログラムが動作する環境の用意が前提です。またHTML/CSSのファイル形式(.html)とは異なり、PHPファイル(.php)はブラウザからWebサーバーにアクセスしたタイミングで処理が実行されます。その後Webサーバーで処理された結果が返却されて、ブラウザに表示されるという仕組みです。

JavaScript

JavaScriptはHTML/CSSと組み合わせて、広く利用されているプログラミング言語のひとつです。
Webページに配置されているボタンをクリックすると色が変わったり、スクロールするとアニメーションが表示されたりするページを見たことはないでしょうか。ブラウザを動かすための言語であり、デザイン性の高いページでは必ず利用されています。

ユーザーの目に見える部分なのでフロントエンドに該当しますが、Webサーバーでの処理は行なわないため静的ページの言語と言えるでしょう。
PHPファイルであることが条件ではありますが、JavaScriptの中にPHPのソースを記述することも不可能ではありません。Webサーバーから返ってきた処理結果を元に、JavaScriptで表示する文字や画像を指定することもできます。
サーバーサイド言語のJavaと名前がよく似ているので間違える方も多いですが、JavaScriptのプログラムはあくまでも「実行結果はいつでも誰でも同じである」ということです。
初学者にとっては混乱するかもしれませんが、この概念は押さえておきたいポイントです。

SQL

SQLはデータベースを管理するソフトウェアの操作や制御を可能にする言語です。プログラミング言語ではないため、SQLだけでシステムを開発することはできません。
PHPにはデータベースに接続・操作できる関数が一通り用意されているので、SQL言語と併用することでデータベースを活用したWebアプリケーション開発を可能にします。

例えばPHPで実行する処理では、会員情報を登録したりECサイトの購入履歴を保存したりする処理などで利用されています。データベースに情報を新規登録(insert文)や更新(update文)といったSQL操作をPHPで処理できるので、Webアプリケーション開発においてはコアな部分を担っていると言えるでしょう。

データベースの操作自体においては、あくまでもSQLの知識が必須となります。PHPとの組み合わせとしては極めてよく利用されるので、サーバーサイドでの処理においてはデータベースの知識とあわせて習得しておきたいところです。

CMSを構築できる

コーポレートサイトやWebメディアでは、CMS(Contents Management System)での構築が主流となっています。管理画面から登録したブログ記事が、Webサイトに公開される仕組みをイメージすると理解しやすいかもしれません。
最近では無料で導入できるWordPress(ワードプレス)と呼ばれるCMSが広く普及していて、数あるCMSの中でもシェアはトップクラスです。

WordPressのカスタマイズ

CMSの代表格であるWordPressのソフトウェアはPHPで構築されています。あらかじめ用意されているWordPressの機能をカスタマイズしたり、要件にあわせて新たに機能を追加したりする場合はPHPでの開発が必須です。
WordPressをマスターするためにPHPを学習する方も多いので、PHPの基礎知識はWordPressを導入する際のアドバンテージとなることでしょう。

スクラッチ開発でのCMS

CMSは既存のソフトウェアを利用することが前提ではありません。PHPを軸にして先に述べた他言語を組み合わせることで、他にはないオリジナル(スクラッチ開発)のCMSを開発することも可能です。
WordPressの既存機能やプラグインでは実現できない要件であれば、カスタマイズするよりもオリジナルCMSを構築するのも選択肢のひとつです。オリジナルであれば自由に仕様を策定でき、また保守性が高まるといったメリットもあります。

機能的なWebページが作成できる

PHPでのWebアプリケーション開発では会員向けサイトや情報検索サイト、Webを活用した業務システムなどあらゆる機能を備えたWebサイトが構築できます。
PHP言語のスキルを習得すれば、企業内の営業ツールや業務効率化といった観点でも役立つことが期待されます。

ログイン機能

ECサイトや会員サイトなどでよく見られるログイン機能は、Webアプリケーションにおいて代表的なサーバーサイドの処理といえるでしょう。
IDとパスワードを入力してログインのボタンを押すと、以下の流れで主な処理が実行されます。

1.入力されたIDとパスワードを取得する(PHPでの処理)
2.会員情報データベースに一致する情報があるか検索する(SQLでの処理)
3.IDとパスワードが一致していれば会員サイトのTOPを表示する(PHPでの処理)

パスワード誤りなどログイン情報に不備があった場合、ログイン失敗のエラーページや赤色のエラーメッセージの表示が想定されます。
表示についてはユーザーの目に触れる部分なのでHTML/CSSまたはJavaScriptでの記述となりますが、ログイン機能だけを見てもPHPの基礎知識が求められるのです。

検索機能

サイト内にあるデータが多いほど、情報を探すための検索機能は必要不可欠です。入力したキーワードの部分一致や完全一致するページ検索は、PHPといったサーバーサイドの処理が必要となります。
処理としてはログイン機能と同じように、データベースやファイルにある文字を抽出・表示することで検索処理を実現します。
PHPにはあらかじめ検索で利用できる関数が用意されていますので、要件に応じた検索機能の開発を手助けしてくれます。

お問い合わせフォーム

ユーザーとのコミュニケーションを図る方法としては、お問い合わせフォームの設置が最も基本的な機能といえます。
質問項目ごとに入力フォームを設置し、管理者にメールや管理画面で通知する機能をPHPで実装することが可能です。
ユーザーはアンケート形式で気軽に問合せができ、運用側はヒアリングしたい情報を入手できるといったメリットがあります。
広く利用されているフォーム機能をPHPで作成すれば、運用面だけでなく営業支援としても活用できるでしょう。

データ取込・出力

Webアプリケーションでのデータ登録は、入力フォームだけでなくCSV取込やAPI(外部システムとの連携)など多岐にわたります。
最近ではSalesforceなどのBIツールとの連携も、PHP言語を習得すれば実現可能です。
PHPのスキルを身につけることは、エンジニアだけでなく業務改善やマーケディング・営業支援といった立場からも有効であると言えます。

PHP基礎の書き方と実例

PHP言語で書かれたプログラムは、どのように記述されているのでしょうか。
初めてプログラミングに触れる方にとっては、ハードルが高いと感じてしまうかもしれません。
実際には基本的な知識を身につけるだけで、ある程度のプログラムが読めるようになります。
そこで一般的な機能を例に交えながら、PHPの基本的な書き方(概念)の一例を紹介します。

変数と定数

入門書では「あらかじめデータを格納する箱を用意します。これが変数です。」といった説明を受けた方も多いのではないでしょうか。
これは処理前と処理後で変数の中身が変わるなど、一連の処理において”変数は動的である”ことを意味します。
一方で定数は中身が変わらず固定であるため、どのような処理であっても中身が変化することはありません。

変数

PHPの変数は「$変数名」と記述して、「=」を使って値を代入します。
算数の計算式ではイコールは”同じ”と考えますが、PHPの世界では右側の要素を左側の変数に格納すると考えます。
ログイン機能であれば入力したIDとパスワードの文字、それを元に抽出したユーザー情報を変数に代入する処理が想定されます。

画面出力結果:abcde12345

定数

定数は中身が常に一定なので、どのような処理であっても変化しない情報に利用できます。
お問い合わせフォームであれば送信ボタンをクリックして、管理者宛てにメールが自動送信されると仮定します。
この場合メールアドレスは固定であるため、定数として扱うことができます。
またメールアドレスの設定を変更したい場合、定数の設定値を変更するだけでプログラムの修正が完結するといったメリットもあります。

出力結果1:taro_yamada@example.com
出力結果2:hanako_tanaka@example.com

条件分岐

プログラミングにおいては「もし値が〇〇ならAパターンを実行する」といった、条件ごとに分岐する処理が必要です。
検索ボタンをクリックして一致するデータがあれば画面に一覧表示しますが、一致しなければ「データがありません」と表示されます。
これはまさに「もしデータが存在しなければエラーを表示する」といった条件分岐の結果と言えます。

if文

if文は英語のifと同様の意味であり、PHPに限らずあらゆるプログラミング言語で登場します。
例えば「if($score > $average)」のように括弧の中に不等号などで条件を指定することで、平均点を越えた場合のみ処理が実行されることになります。
条件は複数指定できるので、複雑な条件を求められても対応が可能です。

switch文

同じく条件分岐の処理として、swich文を利用する場合があります。
例えばテストの点数を判定する値として「switch ($score)」を記述しておき、その中に「case 100」といった満点のときの条件など、想定されるパターンの数だけcaseを記述しておきましょう。
もし点数が100点満点であれば、「case 100」で記述した処理が実行されます。
条件が複数かつ明確であれば、if文ではなくswich文を利用することで可読性の高いプログラムとなります。

このswich文は満点・平均点・それ以外しか判断できないので、合格または不合格を判定する場合はif文を利用しましょう。

繰り返し処理

条件分岐の次によく利用されるのが、繰り返し処理と呼ばれるものです。
指定した回数まで同じ処理を繰り返す、あるいは条件を満たすまで同じ処理を繰り返すといった処理はプログラミングにおいて日常的です。
繰り返して処理をする中で欲しい情報を見つけたり、続ける必要がなくなったりしたときは、break文やcontinue文でループから抜けることができます。

for文

for文は繰り返すための条件や回数を、あらかじめ指定できます。
条件や回数が明確である場合、for文を利用するとよいでしょう。

出力結果:下記の通り繰り返し順の内容が表示されます。
0回目の処理が実行されました。
1回目の処理が実行されました。
2回目の処理が実行されました。
3回目の処理が実行されました。
4回目の処理が実行されました。

while文

while文は条件を満たすまで、ひたすら実行され続ける点が大きな特徴です。
条件を満たすことができなければ、処理が終わらず無限ループとなるため注意が必要です。

出力結果:5回目の繰り返し処理で中断します。

配列

配列とは1つの変数の中に、複数のデータ(要素)を一列で持つ構造のことです。
変数の中身は基本的に1つのデータを格納しますが、配列を利用すれば変数の中に複数のデータを順番に格納することが可能です。
関連した複数データをまとめて管理できるので、より多くの情報を効率的に扱うことができます。
例えば都市名というカテゴリ(配列)の中に、東京や大阪といった地名(要素)を複数持つといったイメージです。

出力結果:下記の通り一列で複数の要素を持った状態になります。
Array
(
              [0] => 札幌
              [1] => 東京
              [2] => 名古屋
              [3] => 大阪
              [4] => 博多

foreach文

配列に含まれている要素の値は、foreach文で順番に取り出すことができます。
配列の要素だけ取り出す処理を繰り返して、用意した変数に都度代入します。
配列を扱う際は必ずと言っていいほど利用されますので、foreach文の特徴は必ず押さえておきましょう。

出力結果:下記の通り文字列と連携した内容が表示されます。
0番目の都市は札幌です。
1番目の都市は東京です。
2番目の都市は名古屋です。
3番目の都市は大阪です。 4番目の都市は博多です。

関数

システム規模が大きくなればなるほど、類似した処理を必要とするケースが増えてきます。
その場合は一連のプログラムを1つにまとめて、あらゆる処理に流用(関数化)すると効率的です。
プログラムを汎用的に利用することで重複したコードを排除でき、修正する際のメンテナンスコストも抑えられます。

関数ごとに名前(関数名)を付け、その名前を呼び出すことで簡単に流用が可能です。
また関数には引数と呼ばれる入力するための変数も設定できるので、変数を渡して関数内で処理することも可能です。
関数の最後にはreturnで変数を指定して、関数内で処理した変数を呼び元に返却します。

まとめ

PHPの基礎を理解することで、構築できるWebアプリケーションやプログラミングの特徴について解説しました。
紹介した内容はほんの一例ですが、PHPを理解すればさまざまな企業サービスや業務支援に貢献できるという将来性もあります。
馴染みのあるWebブラウザから操作できるので、難易度は決して高くはありません。
これからプログラミング学習を始めるにあたってどの言語にするか悩んでいる方は、この機会にPHPを選んでみてはいかがでしょうか。

この記事の著者

LW BLOG編集部

ライターチーム

ITに関する知見を発信するナレッジ記事やLANWAYのカルチャー、社員の働き方を発信する採用記事など、様々な独自情報をお届けします。

この記事を書いたライターの記事一覧を見る