2013年3月15日金曜日

PHP 演算子

代数演算子

+$x + $y$xと$yの和
-$x - $y$xと$yの差
*$x * $y$xと$yの積
/$x / $y$xと$yの商
%$x % $y$xと$yで割った余り
++$x++$xの値に1を足した後$xを返す
++++$x$xを返した後に$xの値に1を足す
--$x--$xの値に1を引いた後$xを返す
----$x$xを返した後に$xの値に1を引く


代入演算子

=$x = 10$xに10を代入する
+=$x += 10$x = $x + 10と同じ
-=$x -= 10$x = $x - 10と同じ
*=$x *= 10$x = $x * 10と同じ
/=$x /= 10$x = $x / 10と同じ
%=$x %= 10$x = $x % 10と同じ
.=$x .= 'A'$x = $x . 'A'と同じ


比較演算子

==$x == $y$xと$yが等しい場合にTRUEを返す
===$x === $y$xと$yが等しく、かつ同じデータ型の場合にTRUEを返す
!=$x != $y$xと$yが等しくない場合にTRUEを返す
!==$x !== $y$xと$yが等しくなく、または同じデータ型でない場合にTRUEを返す
<$x < 10$xが10より小さい場合にTRUEを返す
>$x > 10$xが10より大きい場合にTRUEを返す
<=$x <= 10$xが10以下の場合にTRUEを返す
>=$x >= 10$xが10以上の場合にTRUEを返す
?$x > 10 ? 'OK' : 'NG'(条件式)?(式1):(式2) 条件式がTRUEの場合は式1をFALSEの場合は式2を返す

「==」は型変換を行って値が等しいかどうかをチェックします。
「===」は型変換を行わないので「==」で比較するよりパフォーマンスに優れます。
下の例だと「==」は文字列である$xが 数値に変換され、 数値としての比較を行います。
<?php
    $x = '10';
    $y = 10;
    print( ($x == $y) ? 'TRUE' : 'FALSE'); //TRUEが出力される
    print('
'); print( ($x === $y) ? 'TRUE' : 'FALSE'); //FALSEが出力される ?>


論理演算子

&&$x == 10 && $y == 10$xと$yがともにTRUEの場合にTRUEを返す
||$x == 10 || $y == 10$xまたは$yのいずれかがTRUEの場合TRUEを返す
xor$x == 10 xor $y == 10$xか$yかの どちらかがTRUEで、$xと$yがどちらもTRUEでない場合にTRUEを返す
!!$flag$flagがTRUEでない場合TRUEを返す


その他の演算子

.'aaa'.$memo文字列連結。
@@print(1/0)式の先頭に指定することでエラーメッセージを非表示にする

「@」演算子はエラー制御演算子ともいい、式の前に付けた場合、 その式により生成されたエラーメッセージは無視されます。
以下の例だと0で除算すると「Warning: Division by zero in xxx.php on line X」とエラーが発生します。
<?php
    print(1/0); 
?>
しかしprint命令の先頭に「@」をつけるとエラーメッセージが抑制され表示されなくなります。
<?php
    @print(1/0); 
?>

0 件のコメント: