PHP

PHPとは?JavaScriptが分かれば簡単!

ウェブサイト制作に携わるフロントエンジニアの中には、PHPと聞くだけで「PHPは分からないから嫌!」と毛嫌いしている人もいるのではないでしょうか?そういう人を見たことがあります。

実はJavaScriptが分かるならばPHPは簡単に習得できます。

もちろん、深く理解するにはそれなりに色々と学ぶこともありますが、この記事では、PHP学習に入りやすい形になるくらいまでの話をしたいと思います。

私は最初は書籍を購入してある程度目を通しましたが、自分だったらこの記事を読んでいれば理解が相当早まっただろうと思う内容です。主な対象者は、WordPressでウェブサイト制作を行うというのがメインの方です。

PHPとは?

PHPはHypertext Preprocessorの再帰的な略語です。JavaScriptがフロント側で動くプログラミング言語であるのに対し、PHPはサーバー側で動くプロミング言語です。

JavaScriptはウェブブラウザに実行環境が組み込まれています。ウェブブラウザがあるから動くプログラミング言語ということです。

ウェブサイトの問い合わせフォームを作るのにPHPは利用できます。

「送信」ボタンを押したときにフォームに入力されている値を受け取り、サーバーを介して渡す、という処理にPHPが必要になるわけです。メールを送るという処理もPHPで実行できます。

ウェブブラウザはパソコンを買えば最初から入ってますし、Chromeだって、すぐにインストールできますからJavaScriptは実行環境というものを意識せず触れることができますが、PHPは、実行環境を用意しなければいけません。そして、実行環境の構築にまともに立ち向かおうとすると、その時点で挫折する人が多いと思います。XAMPPというソフトウェアで構築すると簡単だと言われてますが、そうでもありません。

書籍などを読みながら始めようとすると、最初に「まず実行環境を作ろう」から始まるので、そこでつまづく人が多いのでは、と思うんですよね。

PHPを利用するのがWordPress環境のみであるならば、実行環境構築の敷居は一気に下がります

WordPressでPHPを扱うには?

WordPressにはPHPの実行環境が含まれます。なのでレンタルサーバー上にWordPressをインストールすれば、もちろんそのサーバー上では動きます。ただ、ローカルにテスト環境が必要ですよね?

ローカルの環境も、Local(旧称:Local by Flywheel)というソフトウェアであれば簡単に構築できます。Localを入れれば、PHPも動くのです。なのでPHPの用途がWordPressであれば、XAMPPをインストールする必要はありません。

補足すると、WordPressをローカルで動かす方法として、XAMPPをインストールするという選択肢もあります。ただLocalの方が簡単ですし、Localは複数の環境を分かりやすく構築できるなど、WordPressをローカル環境で動かすなら色々と便利です。Localがおススメと言いますか、現時点ではLocal一択だと思います。

PHPの書き方

JavaScriptは、

<sciript>処理<script>

という風に書くのに対して、
PHPは

<?php 処理 ?>

と書きます。

変数は、JavaScriptは

const hoge = 0;

というように宣言が必要なのに対して、
PHPは宣言が必須ではありません。

$hoge = 0;

というように、$マークをつけます。

あとは非常にJavaScriptに似ていると言えます。例えばif文は次のような書き方になります。
get_post_type()というのはWordPressの独自関数です。

<?php
$post_type = get_post_type();
if ( $post_type === 'blog'){
   //処理
}
?>

PHPにはコロン構文というのがあり、以下の記述は上記の記述と同じ処理になります。コロン構文の存在意義は、長いコードになったときに、終わりが分かりやすいというところだと思います。デメリットは少し文字数が多くなることだと思いますが、私は視認性も良く感じるのでコロン構文を好んで使います。混在すると自分が混乱するので、ほとんどはコロン構文で統一しています。

<?php
$post_type = get_post_type();
if ( $post_type === 'blog'):
   //処理
endif;
?>

PHPってどこに書くの?

PHPはどこに書くの?からですよね。

拡張子は.phpで、PHPファイルと呼ばれます。

ただ、HTMLと同時に書けます。

つまり、PHPファイルの中にHTMLが書けるのです。

.htmlのファイルで表示しているホームページは、.phpのファイルに置き換えることが可能です。WordPressで表示するページは全て.phpのファイルで表示します。.htmlファイルを表示することはできません。

<?php
$post_type = get_post_type();
if ( $post_type === 'blog'): ?>
   <h2>タイトル</h2>
<? endif; ?>

<?php ~ ?>がPHPの記述で、それ以外の個所にはHTMLが書けるのです。

ちなみに上記の記述は次のようにも書けます。

<?php
$post_type = get_post_type();
if ( $post_type === 'blog'):
   echo '<h2>タイトル</h2>':
endif; ?>

echoというのは、文字列を出力するためのPHPの記述です。

HTMLの文字列を、PHPで出力しているのです。

ウェブ上に上がっている記事を見ると、echoを使う人の方が多いですが、私はエディター上の色分けのされ方的に、前者の書き方を好みます。

デバッグはどうやるの?

これ実は私つまづいた部分です。

JavaScriptだと、

console.log(hoge);

で出力して正常に出力できているかなどを確認できますよね?
PHPはそれをechoでできる、というのは書籍など読めば書かれてるんですが、具体的にどうやるの?というのが最初は良く分かりませんでした。

というのも、JavaScriptはブラウザの開発ツール上で出力を確認するじゃないですか?

なので、PHPはどこ?って思ってしまったんです。

echo $hoge;

これを、ウェブサイトの画面上に出力される部分に書いて、どう出力されるかを確認する、というやり方です。

あ、そういうことね。

ってなるのに私はなぜか時間がかかりました。

問い合わせフォーム以外のPHPの使い道

ウェブサイト制作で、PHPを避けて通れない理由の一番は先述した問い合わせフォームだとは思います。

ただ、PHPを覚えると以下の観点で非常に効率的にウェブサイトが開発できます。

パーツの共通化

PHPは、次のような記述で、別のファイルを読み込むことができます。

<?php require_once __DIR__ . 'ファイルのパス'; ?>

なので、よく使う記述は別ファイルに書いて、それを書くファイルから読み込む形にします。

例えばヘッダーやフッターは別ファイルにするべきです。

ちなみにWordPressは、勝手に次のような名前のファイルがテンプレートとして用意されてます。そこに書く、という仕様になってます。

header.php
footer.php

JavaScriptでも共通化できますが、PHPの方が簡単です。

パーツを共通化せずに作られているサイト多いですよね?

あれ、共通化している人からしたら信じられません。だって、一か所修正入ったら全部のファイル修正するんですよね?あり得ないです。と思うくらい効率化されるので、パーツの共通化してない人は、PHPを使って共通化するようにしましょう。

ケースによって出力するHTMLを変える

これはJavaScriptでもできますが、HTMLファイル内には書かないじゃないですか?

PHPはHTMLと一緒に書くので、やりやすいです。また、JavaScriptでこれをやると処理に時間がかかったり、画面表示が一瞬おかしくなるということがありますので、ケースによってHTMLの出力を変える、ということをする場合はPHPを使った方が良いと思います。

<?php
$post_type = get_post_type();
switch ('blog'): ?>
   <h2>ブログ</h2><?php break;
switch ('news'): ?>
   <h2>お知らせ</h2><?php break;
switch ('works'): ?>
   <h2>実績</h2><?php break;
endswitch;
?>

まとめ

いかがでしたでしょうか?やってみるか、と思った方がいれば幸いです。

まずはLocalのインストールから始めましょう。Localのインストールはたぶん1分くらいで終わります。

著者のイメージ画像

BringFlower
稲田 高洋(Takahiro Inada)

2003年から大手総合電機メーカーでUXデザインプロセスの研究、実践。UXデザイン専門家の育成プログラム開発。SEOにおいても重要なW3Cが定めるWeb標準仕様策定にウェブアクセシビリティの専門家として関わる。2010~2018年に人間中心設計専門家を保有、数年間ウェブアクセシビリティ基盤委員も務める。その後、不動産会社向けにSaaSを提供する企業の事業開発部で複数サービスを企画、ローンチ。CMSを提供し1000以上のサイトを分析。顧客サポート、サイト運営にも関わる。
2022年3月にBringFlowerを開業し、SEOコンサル、デザイン、ウェブ制作を一手に受ける。グッドデザイン賞4件、ドイツユニバーサルデザイン賞2件、米国IDEA賞1件の受賞歴あり。
プロフィール詳細