この記事は一人PHP総復習 Advent Calendar 20166日目の記事です!
今日はPHPの演算子についてまとめてみます( ˙ω˙)و グッ!
とは言っても、全部羅列するだけだとドキュメントと変わらないので、よく使うやつと気をつける点を紹介します。
演算子とは
ひとつ以上の値 (あるいはプログラミング用語における「式」) から別の値 (制御構造が式になるように) を生み出すもの
(PHPマニュアルより)
言葉にすると難しいですね。汗
変数のような値に対して効果を与えるものと言えます。
= + ? !
など、よく目にするものが多いですね。
覚えるまでもなく、演算子なしにプログラミングは(ほぼ)できないので、習うより慣れろで見ていきましょう。
演算子の名前ごとに分類していますが、名前は覚える必要ないと思います。
演算子の分類
代数演算子
プログラミング以外でもよく目にする、いわゆる「計算」のようなものです。
$a + $b
は加算
$a - $b
は減算
$a * $b
は乗算(×ではないので注意)
$a / $b
は除算
といった具合です。
除算の結果は整数または浮動小数点数が返されるので、扱いには注意しましょう。
演算子の効果: 計算
代入演算子
これまでにも頻出した=
を使います。
この =
は計算式の「等しい」ではなく「値の代入」を示します。
$b = 1;
$b
は1と等しい、ではなく、$b
に1を「代入する」という意味です。
演算子の効果: 代入
比較演算子
値同士を比較してその結果を返します。
例えば、先ほどの=
は「代入」を表していましたが、===
は「等しい」ことを演算します。
$a === $b
は$a
と$b
が等しい場合はboolean型のTRUE
、等しくない場合はFALSE
を返します。
ただし、等しいことを比較する演算子には型を変換して比較する ==
と、型が等しいことも精査する ===
があるので注意してください。
<?php
$a = '1'; // string型(文字列)
$b = 1; // integer型(整数)
echo $a == $b; // true
echo $a === $b; // false
「型」の勉強がここでも活きてきますね( 厂˙ω˙ )厂
よく使う比較演算子には、
!=
等しくない(型を変換して比較)
!==
等しくない(型も比較する)
>
大なり
>=
大なりイコール
などがあります。
!
は、下記でも紹介しますが主に否定の意味を表します。
演算子の効果: 比較
さらに、三項演算子というものがあります。
?:
を使います。
式1 ? 式2 : 式3
式1を評価し、trueの場合は式2を、falseの場合は式3を返します。
<?php
$user = 'Tom';
$greeting = isset($user) ? 'Hello, '. $user : 'Hello, guest';
echo $greeting; // 'Hello, Tom'
初めに式1のisset($user)
を評価して、true
だったので式2を返しています。(その返り値を$greeting
に代入)
また、式2が式1と同じ値をとる場合は省略ができます。
<?php
$user = ['id' => 1, 'age' => 18, 'region' => 'Tokyo'];
$name = $user['name'] ?: 'NONAME';
echo $name; // 'NONAME'
さらにPHP7からはnull合体演算子という??
を使った演算子ができました。
式1 ?? 式2
式1が存在するとき式1を、無い場合は式2の値を返します。
<?php
// 下記は全て同じ結果を返す処理
if (isset($name)) {
$user['name'] = $name;
} else {
$user['name'] = 'NONAME';
}
$user['name'] = isset($name) ? $name : 'NONAME';
$user['name'] = $name ?? 'NONAME';
一行でスッキリ簡潔に書けるので、null合体演算子よく使います!
論理演算子
条件式を組み合わせて評価をすることができます。
式1 && 式2
上記の&&
は「且つ」を表すので、「式1がTRUE且つ式2がTRUE」の時にTRUE
を返します。
式1 and 式2
上記も同様に「且つ」を表しますが、&&
とand
は優先順位が違います。
同様に「又は」を意味するor
と||
も優先順位が違うので注意してください。
優先順位は or << and << || << &&
なので、
if (式1 && 式2 || 式3 or 式4) { ・・・
という条件文があった場合は、
① 式1 && 式2
② ① || 式3
③ ② or 式4
という順で演算されます。
文字列演算子
.
を使って文字列を操作します。
<?php
$greeting = 'Hello, ';
$message = $greeting . 'Tom!';
echo $message; // 'Hello, Tom!'
文字列を.
で繋げると、結合します。
<?php
$greeting = 'Hello, ';
$greeting .= 'Tom!';
echo $greeting; // 'Hello, Tom!'
.=
を使うと、左の変数に右の文字列を結合して代入します。
まとめ
ごくごく基本的な演算子をさらってみました。
演算子をうまく使って、できるだけ簡潔なコードを書いていきたいですね!