PHPの文法

このページではPHPの文法の解説をします。

変数

変数とは扱われるデータの値を入れておく入れ物の役割をするもので、プログラム開発において頻繁に利用されています。
名前は好きにつけられますが、いくつかの条件があります。

  • 変数の行頭は「$」で始まる。
  • 使える文字は英字/数字/_(アンダーバー)
  • 0~9の数字は、変数名の先頭に使えない
  • アルファベットの大文字と小文字はどちらも使える

<例>

<?php
$weather="今日はいい天気ですね。";
print ($hello)"
?>

;(セミコロン)は各式の区切りに使用します。

<実行結果>

今日はいい天気ですね。

PHPでは、変数がそれぞれ整数であるのか文字列であるのかなどの「型」を自動的に判断します。論理型、整数型、浮動小数点型、文字列(string)があり、文字列は'(シングルクォーテーション)や"(ダブルクォーテーション)で囲います。代入できる文字列の長さに制限はありません。
ダブルクォーテーションはエスケープシーケンス文字(不可視の文字を表現する記号\)が使えますが、シングルクォーテーションでは不可です。またエスケープシーケンスは改行「\n」、文字としての\「\\」などがあります。

配列

PHPでは1つの変数に複数の値を持たせることができ、これを「配列」と呼びます。また文字列を使用したものを「連想配列」といいます。
必要な変数が多い場合も、配列を使えば1つの配列で事足ります。また値の並び替え、一部を抜き出す事も容易になります。
変数の入れ物に仕切りを作り、仕切った空間それぞれに「キー」または「インデックス」と呼ばれる添え字を与える事により、値を参照する事などが可能になります。また仕切った空間それぞれを「要素」と呼ぶ事があります。

基本的な配列方法

半角の角括弧[]でキーを指定します。

$配列[ キー ] = 値;

キーの値は省略する事も可能です。ただしその場合、整数「0」から自動的に1ずつ増加して振られていくため、キーと値の関連を意識しておく必要があります。

<例>
「 $num 」という配列を作成し、上から1番目(キーは0)の要素を出力したい場合は以下の様になります。

<?php
$num[0] = "今日は";
$num[1] = "いい天気";
$num[2] = "ですね。";
print $num[0];
?>

<実行結果>

今日は

array()関数

array()関数はPHPに定義されている関数の1つです。1つの変数に複数の値を設定する際、配列の作成が容易になります。
<例>

<?php
$weather = array("晴れ", "くもり", "雨");
echo $weather[1];
?>

array()関数では() 内の左側からキーが自動的に振られます。

<実行結果>

くもり

連想配列

配列のキー(インデックス)に文字列を設定した配列を 「連想配列」と呼びます。配列の要素にどのような値が与えられているか連想しやすいのが特徴です。

<例>
文字列のため、文字の前後はかならずクオーテーションマークで囲みます。

<?php
$fru["apple"] = "りんご";
$fru["grape"] = "ぶどう";
$fru["banana"] = "バナナ";
$fru["orange"] = "オレンジ";
echo $fru["grape"];
?>

<実行結果>

ぶどう

演算子

演算子(オペレーター)とは、PHP上で計算(演算)を行うために用意された記号です。また演算される対象のことを被演算子(オペランド)といいます。

算術演算子

加減乗除を行う演算子です。加算は文字列を結合する場合にも使用されます。

+ 加算…足す
- 減算…引く
* 乗算…かける
/ 割算…割る
% 剰余…あまり

<例>

<?php
$cal = 8 + 5;
echo "8 + 5 = $cal<br>\n";

$cal = 8 - 5;
echo "8 - 5 = $cal<br>\n";

$cal = 8 * 5;
echo "8 * 5 = $cal<br>\n";

$cal = 8 / 5;
echo "8 / 5 = $cal<br>\n";

$cal = 8 % 5;
echo "8 % 5 = $cal<br>\n";

?>

<実行結果>

8 + 5 = 13
8 - 5 = 3
8 * 5 = 40
8 / 5 = 1.6
8 % 5 = 3

比較演算子

2つの値をとある条件によって比較する場合に使用するのが「比較演算子」です。条件分岐の構文等で使用します。
条件に合えば「true」、条件が合わない場合は「false」を返します。

演算子
意味
==
$a == $b
等しい
!=
$a != $b
等しくない
<>
a <> $b
等しくない
<
$a < $b
より少ない
<=
$a <= $b
未満
>
$a > $b
より多い
>=
$a >= $b
以上

代入演算子

代入演算子は変数に値を代入する場合に使用します。プログラム言語では「=」という記号は「値を代入する」というルールがあり、値を右辺に記述し、左辺に代入します。

演算子
意味
$x = $y
$xに$yを代入する

複合演算子

複合演算子は加算と代入、結合と代入を組み合わせるものです。

演算子
意味
$x += $y
変数$xに右辺$yの演算結果を加算して代入する

<例>

<?php
$x = 3;
$x += 7; // $x = $x + 7という意味
echo $x;
?>

<実行結果>

10

論理演算子

PHPで条件式を行う場合、その条件式では演算子が用いられ、if文などで条件分岐の判定を行います。論理演算子によって「true」または「false」の値が返されます。

演算子
意味
&&
$x && $z … $xと$zの両方がTRUE
||
$x || $z … $xと$zのどちらか一方がTRUEならばTRUE
xor
$x xor $z … $xと$zのどちらか一方がTRUEならばTRUE
!
!$x … 値が成り立たない場合

制御構造

PHPなどのプログラムは「順次実行」「分岐実行」「繰り返し実行」で成り立っています。この流れを制御するものが「制御構造」です。分岐を利用すると、複雑な動作を実現させることができます。

条件分岐---if,else

if構文は条件分岐の代表的な構文です。「もし~なら~~を実行する」という条件を、「TRUE」または「FALSE」を用いて判定します。
条件に合わない場合は「else if」で条件判定を実行し、条件がすべて合わない場合は「else」以降の処理を実行します。

<基本構文>

<?php
if(条件式) {
処理
}
else if(条件式){
処理
}
else{
処理
}
?>

<作例>

<?php
$ninzuu = 100;
if ($ninzuu >= 80) {
print ("混んでいます");
}
else if ($ninzuu >= 50) {
print ("比較的空いてます");
}
else {
print ("空いています");
}
?>

<実行結果>

混んでいます

条件分岐---switch

switch文は、変数の値に応じて条件分岐する制御構文で、case文と共に利用します。switch文の基本的な書式は以下のとおりです

<基本構文>

<?php
switch( 変数や式 ){
case 値1:
値1の時の処理;
break;
case 値2:
値2の時の処理;
break;
default:
デフォルトの処理を実行
}
?>

<作例>

<?php
$weather = 2;
switch( $weather ){
case 0:
echo "晴れています";
break;
case 1:
echo "雪が降っています";
break;
case 2:
echo "雨が降っています";
break;
default:
echo "わかりません";
}
?>

<実行結果>

雨が降っています