PHP の演算子

WBOY
WBOYオリジナル
2016-06-23 13:27:341115ブラウズ

算術演算子

演算子の説明
+
-
*
/ 除算演算子は常に浮動小数点数を返します。唯一の例外は、両方のオペランドが整数 (または文字列から変換された整数) で、正確に割り切れる場合であり、その場合は整数を返します。
% モジュロ演算子のオペランドは、演算前に整数 (小数部を除く) に変換されます。モジュロ演算子 % の結果は、被除数と同じ符号 (符号) になります。つまり、 a b の結果は $a と同じ符号を持ちます。


echo (5 % 3)."\n";           // prints 2echo (5 % -3)."\n";          // prints 2echo (-5 % 3)."\n";          // prints -2echo (-5 % -3)."\n";         // prints -2
代入演算子

基本的な代入演算子は「=」です

基本的な代入演算子に加えて、すべての二項算術演算子、配列コレクション演算子、および文字列演算子に適した「組み合わせ演算」があります Symbol"

$a = 3;$a += 5; // sets $a to 8, as if we had said: $a = $a + 5;$b = "Hello ";$b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!";
ビットごと演算子 名前の例 result
$a & $b And (ビット単位の AND) は、両方とも 1 である $a と $b のビットを 1 に設定します
$a | $b Or (ビットごとの OR) $a と $b の 1 対 1 のビットを設定します
$a ^ $b Xor (ビットごとの排他的 OR) $a と $b のビットを設定しますそれは 1 で、もう 1 つは 0 から 1 です
~ $a Not (ビットごとの否定) $a のビットを 0 から 1 に設定し、その逆も同様です
$a << $b 左シフト $a のビットを左に $b 回シフトします (各移動は「2 を掛ける」ことを意味します)
$a >> $b 右シフト (右シフト) $a のビットを右に $b 回シフトします (各移動は「2 で割る」ことを意味します)

左にシフトすると、右側にゼロが埋め込まれ、符号ビットが削除されます。符号は保持されていません。右にシフトすると、左側に符号ビットが埋め込まれます。これは、符号が保持されることを意味します。

比較演算子 名前の例 結果 と等しい場合 と等しくない場合 より小さい場合 $a > $b より厳密に大きい場合は TRUE $a <= $b$ 以下の場合は TRUE a >= $b 以上の場合)


如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对。

<?phpvar_dump(0 == "a"); // 0 == 0 -> truevar_dump("1" == "01"); // 1 == 1 -> truevar_dump("10" == "1e1"); // 10 == 10 -> truevar_dump(100 == "1e2"); // 100 == 100 -> trueswitch ("a") {case 0:    echo "0";    break;case "a": // never reached because "a" is already matched with 0    echo "a";    break;}?>

三元运算符

另一个条件运算符是“?:”(或三元)运算符

错误控制运算符

PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

@ 运算符只对表达式有效。对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。例如,可以把它放在变量,函数和 include 调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等

执行运算符

PHP 支持一个执行运算符:反引号(` `)。注意这不是单引号!PHP 将尝试将反引号中的内容作为shell命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数 shell_exec() 相同。

反引号不能在双引号字符串中使用

递增/递减运算符 逻辑运算符
$a == $b Equals TRUE、型変換後の $a が $b
$a === $b Congruent 本当、$a が $b と等しく、それらの型も同じ場合
$a != $b 等しくない TRUE、型変換後に $a が $b と等しくない場合
$a <> $b 等しくない TRUE、$a が $b
$a !== $b 等しくない TRUE、$a が等しくない場合$b と等しいか、異なる型です
$a < $b より小さい $a が $b
より大きいthan $ a が $b
以下 $a が $b
以上 TRUE ($a が $b
例子 名称 结果
$a and $b And(逻辑与) TRUE,如果 $a 和 $b 都为 TRUE
$a or $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE
$a xor $b Xor(逻辑异或) TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是
! $a Not(逻辑非) TRUE,如果 $a 不为 TRUE
$a && $b And(逻辑与) TRUE,如果 $a 和 $b 都为 TRUE
$a || $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE


“与”和“或”有两种不同形式运算符的原因是它们运算的优先级不同

字符串运算符

有两个字符串(string)运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”)

数组运算符 例子 名称 结果
$a + $b 联合 $a 和 $b 的联合
$a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE
$a === $b 全等 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE
$a != $b 不等 如果 $a 不等于 $b 则为 TRUE
$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE
$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE


  • 运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
  • 类型运算符

    instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。