非エンジニアでも知らないとヤバイPHP Part5〜ブロック・変数・定数・代入演算子を理解しよう〜

PHPとPCの画像

前回はテキストエディタと開発環境を用意して、自分が書いたコードをブラウザに表示するところまで実施しました。
今回はPHPにおけるPHPブロック・変数・定数・代入演算子をご紹介していきます。
PHPを用いたブラウザでの表示方法がまだわからない方は、
非エンジニアでも知らないとヤバイPHP Part4〜ブラウザに表示してみよう〜
も合わせてご覧ください。

PHPブロックとは

PHPブロックは「ここからここまではPHPとして扱いますよ」と範囲を指定した部分をさします。具体的には
<?php』が開始タグ
?>』が終了タグ
となります。PHPはHTMLに組み込まれることを前提とした言語になっていますので、「ここがPHPだよ!」ということを明示してあげる必要があります。この開始タグ〜終了タグの内部はPHPとして処理され、タグの外部はPHPとしては処理されずに通常の文字列として出力されます。
Part4でご紹介した内容では、以下の赤字の部分がPHPブロックに該当します。

<?php//ここからPHPブロックが開始。
$name1 = "山田太郎";
$name2 = "山田花子";
?> //ここまでがPHPブロックです。


<p>

<?php //ここからPHPブロックが開始します
echo "pタグ内に、phpのechoを使って文字を追加する";
?> //ここまでがPHPブロックです
</p>

この様に、『<?php』の開始タグと『?>』の終了タグで囲うことでPHPとして処理されます。PHPを扱う時は、上記の様に開始タグと終了タグを用いて「ここがPHPだよ!」と明示してあげる必要があることをご理解ください。

変数・定数とは

変数・定数と聞いて、最初に思い浮かぶのはなんでしょうか…筆者は中学から始まった数学(苦手な方も多かったのではないでしょうか)を思い出しました。

y = x + 1

といった数式を通して、変数・定数という概念に触れた方は多いと思います。基本的には、この数学で使われていた概念に近いものとなります。
PHPで扱う変数も定数も、「ある値を一定期間保管する、名前がついた領域・保管場所」という認識でご理解ください。よく参考書などでは「箱」といった概念を用いられることがありますが、値を格納したり(PHPでは『代入』と表現します)、取り出したり、格納する値を変更したりすることが可能となります。

代入演算子とは

変数・定数のご紹介に入る前に、代入演算子をご紹介いたします。『=』この記号が代入演算子の基本となります。この記号を見ると「左辺と右辺が等しい(イコール)」といった意味が最初に浮かんでくると思います。数学の場合はそれで正しいのですが、PHPの場合では少し意味合いが異なります。
PHPでの『=(代入演算子)』は「『=』の左オペランドに『=』の右オペランドを格納(代入)する」という意味合いになります。ここで急に「オペランド」という聞き慣れない単語が出てきたかと思います。オペランドとは「演算の対象となる値や変数」を指します。
したがって、代入演算子は「=の左側の値に=の右側の値を格納(代入)する」演算子になります。代入する値は右側であることを覚えておいてください。

変数とは

ものは試しということで、さっそく変数の具体例をご紹介します。赤字で書かれた部分が変数に該当します。

<?php
$name1 = "山田太郎";
$name2 = "山田花子";

echo $name1; // 「山田太郎」が出力されます
echo $name2; // 「山田花子」が出力されます
?>

PHPの変数は『$』のドル記号から書き始めます。つまり『$name1』は「name1という名前の変数を用意する」ことを意味しています。『=』は代入演算子でしたね。左の値に右の値を格納します。次に『”山田太郎”』は変数に格納する値の文字列となります。最後の『;(セミコロン)』は区切り文となります。文の終わりには必ずつけてください。
したがって、『$name1 = "山田太郎";』は「変数name1に山田太郎という文字列を代入する(区切り文)」という意味になります。
PHPの変数にはいくつかルールがあります。

・最初に『$』をつける
・変数の名前に使用できるのは、半角英数字と_(アンダースコア)
・大文字と小文字は区別される
(例:$Name、$nameは別の変数として扱われる)
・『$』の直後に数字は使えない
(例:◯$name2、$_name3、×$3name)
・thisを変数名に使用することは推奨していない
($thisは擬似変数といって、PHPでは別の変数に既に使用されています)
・再代入が可能

再代入に関して説明します。以下のコードをご覧ください。

<?php
$number = 1;
$number = $number + 4;
?>

こちらを見て違和感を感じたのではないでしょうか。筆者も最初は違和感を感じました。

$number = $number + 4 ;

って「左辺と右辺イコールじゃないじゃん!」と。ここで先ほど説明した「代入演算子」「=」についてもう一度思い出していただきます。代入演算子は「=の左側の値に=の右側の値を格納(代入)する」でしたね。先ほどのコードに説明を加えると以下の様になります。

<?php //phpの開始タグ
$number = 1; //$number に 1 を代入する。
$number = $number + 4 ;
//新たな変数$numberに、最初に定義した変数$number(1が代入済)と4を足したものを再定義する
//$numberに代入されている数字は(1+4)で5となる。
?> //phpの終了タグ

上記の様になります。つまり
$number = $number + 4;

$number = 1 + 4;//定義済みの$number = 1;
となり、$number = 5;となります。再度$numberに5が代入されているので、「再代入」となります。

定数とは

先ほど数学の式を紹介したかと思います。
y = x + 1
定数は上記式で言うところの「1」に該当します。変化しない数ですね。PHPにおける定数も、定義したあとは基本的に変更することがない値を定数に格納していきます。PHPの定数に関してもいくつかルールがあります。

・最初にdefine()と宣言する。
・define()の中に、「定義したい定数の名前」と「格納したい値」を記載する
(例:define(NAME , “山田 太郎”);)
定数名は慣習的に全て大文字で定義する
・定数の名前に使用できるのは、半角英数字と_(アンダースコア)
・定数名の最初に数字は使えない
・大文字と小文字は区別される
・定数は再定義、再代入ができない
(先に定義した定数の値が使用される)

となります。コードで確認していきましょう。

<?php
define(NAME , "鈴木一郎");
echo NAME ; // 「鈴木一郎」が出力されます。
define(NAME , "田中さん"); //既にNAMEが定義されているため、再定義はできません。
echo NAME ; // 先に定義している「鈴木一郎」が出力されます。
?>

まとめ

いかがでしたでしょうか。今回はPHPでのPHPブロック・変数・定数・代入演算子をご紹介いたしました。次回はPHPにおけるデータ型を紹介していきます。
非エンジニアでも知らないとヤバイ Part6〜データ型を理解しよう〜に移動する。

最後に

プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。

関連記事