代入演算子はしっかりマスターしましょう
演算子系コラムもこれでいったんおしまいです。
最後に登場するのはキャスト演算子と代入演算子です。
キャスト演算子は、とりあえず頭の片隅においておくぐらいでいいかもしれません。僕もこの記事を書くまで知りませんでした。
代入演算子の方は、スクリプトを短く書くために多用されるので、押さえておきたいですね。
目次 Table of Contents
キャスト演算子でPHP変数に型付け
PHPは型付けの弱い言語です。というと聞こえが悪いので、流動的な型付けをしてくれる言語ということにしておきます。
文字列の2であっても、計算式の中では自動的に数値として扱ってくれるのです。
ですが、場合によってはこの自動型変換をストップしたいこともあるかもしれません。
そんなときは、変数の前にキャスト演算子をつけてやります。
$num = (int) $str;
//
$str2 = "10";
$str2 = (int) $str2;
上の例はINT型(整数型)のキャストをした例です。
キャスト演算子は変数の前につけることになっていて、最初の代入時の10の前につけるわけではありません。
よって、最初から絶対INT型で扱う、という場合上記2番目のようにキャストしたものを変数に再代入します。
キャスト演算子は以下のようなものがあります。
演算子 | 型 |
(int) | 整数 |
(float) | 浮動小数点数 |
(string) | 文字列 |
(bool) | 論理値 |
(array) | 配列 |
(object) | オブジェクト |
念のため、変数の値が文字列であることを確かめる関数を使って確認してみます。
$num = (string) $num;
if(is_string($num)){
echo '$num'."は文字列です。";
}
$a = 2;
$a = (int) $a;
if($num === $a){
echo "数値に自動変換されちゃった!";
}
同じ2をINT型にキャストしたものと、STRING型にキャストしたものを、===で完全に一致するか調べています。
型が違うので、2つ目の処理は偽となっていますね。
ただ、注意したいのが、比較演算子を==にしたり<にすると、普通に型変換が行われます。
===とのセットで使うべき演算子ですね。
代入演算子を使った式の省略をマスターしよう
代入演算子とは、変数に値を代入する「=」が一番基本ですが、代入時に先に演算をしてしまおうっていうのがいくつかあります。
以下が=以外の代入演算子の一覧です。
演算子 | 例 | 同じ意味 |
+= | $a += 5; | $a = $a + 5; |
-= | $a -= 5; | $a = $a - 5; |
/= | $a /= 5; | $a = $a / 5; |
*= | $a *= 5; | $a = $a * 5; |
%= | $a %= 5; | $a = $a % 5; |
^= | $a ^= $b; | if($a xor $b){ $c = true; } else { $c = false; } $a = $c; |
&= | $a &= $b; | if($a && $b){ $c = true; } else { $c = false; } $a = $c; |
|= | $a |= $b; | if($a || $b){ $c = true; } else { $c = false; } $a = $c; |
.= | $a .= $b; | $a = $a.$b; |
下の方の論理代入演算子はちょっとわかりにくいので、いろいろ試してみましょう。
コメントフォーム
自分の勉強にもなりますので、コメントいただけるとうれしいです。