PHPのプログラミング基礎や基本を学びたい!という初心者向けに分かりやすく解説して行きたいと思います。
この記事では、PHPのプログラミング基礎の変数についてお伝えします。
初めての方は、順に進めてPHPのプログラミングの学習に役立てて頂けれたらうれしく思います。
環境概要
この記事でご説明する方法は、以下のパソコンで進めた内容になります。
ご自身と環境が違うことで、挙動が変わる場合があります。
- OS:Windows 10 Home 64 ビット
- CPU:Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (8 CPUs), ~2.0GHz
- GPU:Intel(R) UHD Graphics 620
- メモリー:16GB
また、この記事内容では、以下の開発環境が前提となります。
- パソコンに「XAMPP」をインストール済み
- パソコンにテキストエディタ「VSCode」をインストール済み
- HTMLの基礎を少しは理解している
インストールがまだの場合は、以下からインストールをしましょう!
PHPのプログラミング基礎学習 – 変数を理解する!
この記事では、PHPのプログラミング基礎にフォーカスして学習できるようにまとめていきます。
PHPのプログラミング学習では、1度だけ読んですべて理解するのは難しく、大切な基礎の理解を深めるためには繰り返し読み直していただければ良いと思います。
変数を使う
PHPのプログラミングに欠かせない機能として、「変数」があります。
プログラムの開発を進めていくと、比例してどんどん制作規模が多くなり、内部で多くのプログラムの処理が行われるようになります。
その際には、計算処理したデータを保存しておき、必要な時にそのデータを再度使えるようにしておかないと、不要だと認識されて消去されてしまいます。
消去されないように、必要なデータを保存するように判断してもらうようにする命令を変数への代入になります。代入は、変数にデータを保存するという意味になります。変数をよく例えられているのが、データを保存できる箱だとイメージしてもらえれば理解しやすいかと思います。
正しい言い方をすると、変数にデータを代入する処理は、データをコンピュータのメモリに保存する処理になります。メモリに保存することで勝手に消去されませんが、一定のプログラムが終了するとルールに従い消去されてしまいます。
必ず残り続ける必要があるデータなどは、プログラムの中でデータベースに保存する事などが必要になります。
前置きが長くなりましたが、変数の代入を行いますので、以下のコードを「smaple.php」のファイルを開き書き直してください。
<?php
// 「これは文字列データです」を$moji変数に代入
$moji = "これは文字列データです";
echo $moji;
?>
「$moji
」が変数で、「"これは文字列データです"
」が変数に保存する文字列データになります。頭に$
(ドル)を付けた後に英数字を書くと変数と扱えます。
文字列は文字列型というタイプになります。文字列として認識させるには対象を「"
」(ダブルクォーテーション)で囲います。「'
」(シングルクォーテーション)でも文字列型として認識させれますが、使い分けはここでは割愛しますので、ここでは「"
」(ダブルクォーテーション)で書いてください。
また、「=
」は数学のイコール(右辺と左辺が同じ値)とは違い、プログラミングにおいては「右辺のデータを左辺の変数に代入する」という命令の働きになります。
smaple.phpを実行
では、上記のコードを書き ctrl + S で保存し、ターミナルを開いてphpコマンドで「sample.php」を実行しましょう。
> php sample.php
ターミナルにこれは文字列データです
と表示されたと思います。echo
はデータを表示する命令ですが、$moji
という変数名がそのまま表示されるのではなく、$moji
変数に代入された実際のデータであるこれは文字列データです
という文字列が表示されます。
イメージとしては、$moji
という名前の付いた箱の中に、これは文字列データです
という文字列データを取り出して表示している状態になります。取り出したからと言っても消去されるわけではないので、echo $moji
と書いた数だけこれは文字列データです
が表示されます。
変数の扱い方
変数はプログラミングにおいて頻繁に利用します。その変数の扱い方のポイントを理解しましょう。
変数名は何のデータか分かるようにする
変数は、自由な変数名を付けれます。プログラムの作成において変数名はわかりやすく名付けることが重要になります。変数名の付け方でプログラムの処理の内容が変わってしまうことはありませんが、あくまでもそのプログラムは人が作成し理解しやすくするためには、分かりやすい変数名を付けることで可読性は変わります。
プログラムのソースコードは、個人でも複数人で開発を行うメンバーで読むことになるので、誰が見ても理解しやすいプログラムを書くことは重要になりますので念頭におきましょう。
例えば、以下のコードのように変数名で何のデータなのか分かりにくい名付けをしたとします。
<?php
$a = 3600;
?>
上記の右辺の値は、1時間の秒数の値(整数型)を変数$a
に代入した場合になります。この変数を1度書きそれで終わるようなプログラムであれば、$a
とい変数名でも構わないかもしれませんが、メンテナンスが必要なプログラムで変数名だけで意味が分からない変数名を付けると、後から修正で見直しを行う時になんの値だったのか分からず、解読するのに大変苦労します。
では、以下のコードのように、$ichijikan_no_byousuu
と書いた場合であれば、変数の中に3600
が1時間の秒数だと分かりやすくなります。ファイルに分かりやすい名前を付けて保存するのと同じように、変数名も何のデータが分かりやすい名前を付けてるようにするのがあなたにとっても楽になります。
誰が見ても分かりやすい変数名を付けるように心がけましょう。
<?php
$ichijikan_no_byousuu = 3600;
echo $ichijikan_no_byousuu;
?>
計算結果の値を変数に代入する
ではここで、変数に代入する値が3600
と直接的になっているのを、以下のコードのように計算結果を代入するようにリファタングします。 リファタングとは、外部への表示は変わることなく、プログラムの可読性向上や複雑なプログラムの簡素化などの、修正や改善することをいいます。
<?php
// 右辺は、分数 * 秒数 ←コメントで説明付けは分かりやすくなります
$seconds_per_hour = 60 * 60; // * は掛け算を意味します
echo $seconds_per_hour;
?>
60 * 60
という計算式にすることで、計算過程をプログラムに含めているのだと推測しやすくなります。プログラミングでは計算も一瞬で行えます。プログラムを自作していない人が見ても、わかりやすいプログラムを書くことは大切です。それは、あなたも他の人も何度も目にしますが、すべてのプログラムのコード内容をすべて覚えることなんて到底できないからです。
また、上記コードのようにコメント
で説明を入れると見直したときに理解しやすくなりますので、じゃんじゃん活用しましょう。
変数に変数の計算結果を代入
もう少しリファタングします。60 * 60
のそれぞれの60
も変数にして変数を計算させます。以下のコードに書き直しましょう。
<?php
$minute = 60; // 1時間の分数
$second = 60; // 1分間の秒数
// 分数 * 秒数
$seconds_per_hour = $minute * $second; // * は掛け算を意味します
echo $seconds_per_hour;
?>
これでほどよく、数ヵ月後に見直したときでも何のプログラムなのか直ぐに理解できるようになったと思います。ただ、そこまで複雑ではないコードに対して説明が必要かどうかは、バランスを考えながら付けていく必要もでてきます。
では、「sample.php」をターミナルで実行して、変数を使った計算も正常に動作するのを確認してください。3600
と表示されると思います。この変数の計算は、どちらとも整数型の場合に限りますので注意が必要です。
変数の複数単語の命名
変数名の命名で、英語読みにするべきと説明しました。
$seconds_per_hour
のように変数名に複数の単語を使う場合は、名付けの方法として主に2つあります。PHPでよく利用される記法としては、単語と単語の間を_
(アンダーバー)で繋げる「スネークケース」方法になります。もう1つが「キャメルケース」方法なのですが、$secondsPerHour
と書き、最初の単語のみ小文字で2つ目以降の単語の頭文字が大文字になり連続して書きます。
どちらの記法でもプログラミングによる影響は変わりません。どちらを使うべきかという決まりはありませんので、お好みであったり、修正するソースコードで利用されている記法に準じていただくのが一般的かと思います。
変数名に使えないケース
PHPでの変数名に使えないケースが以下の2つありますので名付け時には気を付けましょう。
変数はデータを上書きできる
変数は、プログラムの過程で別のデータを上書きすることができます。以下のコードを「sample.php」書き直してターミナルで実行してみてください。
<?php
// 「これは文字列データです」を$moji変数に代入
$moji = "これは文字列データです";
// 「これは上書き文字です」を$moji変数に代入(上書き)
$moji = "これは上書き文字です";
echo $moji;
?>
これは上書き文字です
が表示されると思います。
このように変数は、1度データを代入しても別のデータを上書きができます。気を付けなければいけないことは、意味もなく同じ名付けの変数名を使い代入すると、データが上書きされ意図しないプログラム結果になるということを理解しましょう。
プログラムの作成で変数を上書きすることはありますが、意味もなく上書きすることはしないようにすべきでしょう。
まとめ
PHPのプログラミング基礎の変数を解説しましたが、いかがでしたでしょうか?
少し難しく感じたかもしれませんが、この変数を使わずにプログラムを作成することは無いと言っていいため、変数の扱い方はしっかりと理解しておく必要があります。
変数の扱いのポイントをおさらいしましょう。
扱いについてもかなりの仕様がありますので、少しずつ理解をしていきましょう。
では、お疲れ様でした!