初心者による初心者のためのPHP講座 第5回 演算子

初心者による初心者のためのPHP講座 第5回 演算子PHPに限らず、プログラムでは、「演算子」と呼ばれる数学的または論理的な演算を行うための記号を使用する事が多い。

この演算子を使えば、足し算、引き算などの四則演算を行ったり、値の代入を行うことが出来る。

また、PHPのプログラムでは、ある条件を満たすか否かの判定、つまりは真偽(true、false)の判定を行うことが多いが、このような判定では「比較演算子」、「論理演算子」が欠かせない。

既に「初心者による初心者のためのPHP講座 第3回 文字列」で「文字列演算子」について触れ、「初心者による初心者のためのPHP講座 第4回 定数と変数」で「代入演算子」と「算術演算子」についても触れており、実際に使用しているが、それら以外にも演算子には様々な種類がある。

とは言え、復習的な部分も少なくない。

演算子は、必ず知っておく必要があるが、演算子だけ取り上げて学習するよりも、プログラムの中で実際に使った方が感覚的にも分かりやすいかもしれない。

具体的な使い方は、実際にプログラミングしながら覚えれば良い。

しかし、演算を行うための演算子という記述があることは、少なくとも覚えておこう。

算術演算子

単純な計算を行うための記述にであり、「5+3」、「2×3」の「+」や「×」に相当するもので、プログラミングの知識が無くとも、馴染みがあり、理解しやすいはずである。

PHPでは、以下の5つの四則演算子が用意されている。

+	足し算
-	引き算
*	掛け算
/	割り算
%	割り算の余りを求める

下記は、算術演算子を使ったサンプルである。

<!doctype html>
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>四則演算子</title>
</head>
<body>
<?php
$cal1 = 8 + 3;	// 8と3の足し算。$cal1には整数11が代入される。
$cal2 = 8 - 3;	// 8から3を引く。$cal2には整数5が代入される。
$cal3 = 8 * 3;	// 8に3を掛ける。$cal3には整数24が代入される。
$cal4 = 8 / 3;	// 8を3で割る。$cal4には浮動小数点2.66666666667が代入される。
$cal5 = 8 % 3;	// 8割る3の余り。$cal3には整数2が代入される。
echo "8 + 3 = ".$cal1."<br />";
echo "8 - 3 = ".$cal2."<br />";
echo "8 × 3 = ".$cal3."<br />";
echo "8 ÷ 3 = ".$cal4."<br />";
echo "8 ÷ 3の余りは ".$cal5."<br />";
echo $cal3." - ".$cal1." = ".($cal3 - $cal1); // 変数同士の演算
?>
</body>

上記のスクリプトの実行結果を表示

算術演算子では単純な計算しか出来ないが、高度な演算については関数が用意されているので、それらを使えば良い。

例えば、指数演算を行うpow()関数、サインを求めるsin()関数などがある。

演算子「+」は、算術演算子としてだけでなく、配列演算子として配列の結合に使われる場合もある。

文字列演算子

文字列を連結する際に使用する演算子「.」を指す。

「.」で接続された文字列(変数)は、左の文字列の後ろに右の文字列を加える形で1つに連結される。

"東京"."都"		// 東京都となる

代入演算子

代入演算子は右辺の値を左辺の代入する「=」が基本となるが、 算術演算子や文字列演算子と組み合わせて、より複雑な値の代入を行うことが出来る。

=		// 左辺に右辺を代入
+=		// 左辺に右辺を加えた数を左辺に代入
-=		// 左辺から右辺を引いた数を左辺に代入
*=		// 左辺に右辺を掛けた数を左辺に代入
/=		// 左辺を右辺で割った数を左辺に代入
%=		// 左辺を右辺で割った余りを左辺に代入
.=		// 左辺に右辺を連結した値を左辺に代入

加算子、減算子

加算子、減算子とは、値を1つ増やしたり、1つ減らしたりする演算子の事である。

$a++	// $a += 1と同じ
$a--	// $a -= 1と同じ

以下の例では、変数$aの値を加算子、減算子で増減させている。

<?php
$a = 0;
$a++;		// 1加算されて$aの値は1になる
echo $a."<br />";
$a--;		// 1減算されて$aの値は0になる
echo $a;
?>

下記のように変数の前に「++」、「–」を配置しても良い。

<?php
$a = 0;
++$a;		// 1加算されて$aの値は1になる
echo $a."<br />";
--$a;		// 1減算されて$aの値は0になる
echo $a;
?>

厳密に言えば「$a++」と「++$a」、「$a–」と「$a++」では内部処理が異なる。

「++」または「–」を変数の後に記述した場合は、まず、元の変数の値を返してから加算、減算が行われる。

それに対して、変数の前に記述した場合は、最初に加算、減算が行われ、その結果を変数の値として返す。

次のサンプルでは、その違いがはっきりと結果に現れている。

<!doctype html>
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>加算子、減算子</title>
</head>
<body>
<?php
$a = 0;
$b = 0;
echo '++$aは '.++$a."です。<br />";
echo '$aは '.$a." です。<br />";
echo '$b++は '.$b++." です。<br />";
echo '$bは '.$b." です。";
?>
</body>
</html>

上記のスクリプトの実行結果を表示

その他の演算子

「比較演算子」、「論理演算子」もよく使用する演算子であるが、これらは別の機会に説明する。

演算子の優先順位

演算子には、演算の優先順位がある。

例えば「*」、「/」、「%」は、「+」、「-」より優先して演算される。

つまり、掛け算、割り算は、足し算、引き算よりも優先されると言うことだが、これは数学上の数式と同じである。

意図して優先順位を変える場合は、数学同様に「()」を使えば良い。

<?php
echo 1 + 3 * 5;		// 16になる
echo "<br />";
echo (1 + 3) * 5;	// 20になる
?>

演算と型

変数等の値を考える場合、その型を意識する必要がる。

基本的に同じ型同士でなければ演算できないが、都度、型を変換する必要がないように自動的に型の変換が行われるようになっている。

<!doctype html>
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>演算と型</title>
</head>
<body>
<?php
echo "2" + "3.3";
echo "<br />";
echo "2a" + "3";
echo "<br />";
echo "a2" + "3";
echo "<br />";
echo "2.3b" + "3b";
echo "<br />";
echo "a" + "3";
?>
</body>
</html>

上記のスクリプトの実行結果を表示

「整数」と「浮動小数点」の演算では、「整数」が「浮動小数点」に変換された後に演算が行われ、演算結果の型は、「浮動小数点」となる。

変わったところでは、文字列と数値、文字列同士の演算も成立する。

文字列が数字で始まる場合、始まりの数字の部分が値として使われ演算される。

文字列が数字で始まらない場合は、整数の0として扱われる。



PHP, PHP講座, ネット・PCPermalink