ホームページ  >  記事  >  バックエンド開発  >  PHP 基本チュートリアル 3 つの演算子

PHP 基本チュートリアル 3 つの演算子

黄舟
黄舟オリジナル
2017-03-01 09:28:491351ブラウズ

このセクションで説明する内容

  • 算術演算子

  • インクリメント演算子とデクリメント演算子

  • 代入演算子

  • 文字列演算子

  • 演算子

  • ビット演算子

  • 論理演算子

  • 三項演算子

  • エラー制御演算子

前書き

PHP 演算子は、PHP の基本を習得する必要があります。演算子は、PHP データ処理の橋渡しとなるスキルです。加算、減算、乗算、除算、またはその他の演算など、データに対するさまざまな演算。

算術演算子

算術演算子: 四則演算を処理するために使用される記号です。これは最も単純で最も一般的に使用される記号であり、特に数値の処理では、算術演算記号がほとんどの場合に使用されます。

算術演算子の分類:

-$a の否定、$a の負の値

$a = -1;
echo -$a;
-----结果-----
1

$a + $b $a と $b の和

$a = 12;
$b = 12;
$res = $a + $b;
echo $res;
-----结果-----
24

$a - $b の減算 $a と $ の差b

$a = 12;
$b = 6;
$res = $a - $b;
echo $res;
-----结果-----
6

$a * $b $a と $b

$a = 2;
$b = 3;
$res = $a * $b;
echo $res;
-----结果-----
6

$a の乗算 / $b $a と $b

$a = 12;
$b = 6;
$res = $a / $b;
echo $res;
-----结果-----
2

$a の除算 % $b モジュロ $a と $b の余り

$a++ は $a を返し、$a の値に 1 を加算します (後加算)。

  • –$a $a の値を 1 つデクリメントし、前にデクリメントされた $a を返します。

  • $a – $a を返し、$a の値を 1 つずつ減分してから減分します。

  • ++$a
  • $a = 3;
    $b = 2;
    $res = $a % $b;
    echo $res;
    -----结果-----
    1


    $a++
$a = 1;
$b = ++$a;//先++,在进行赋值运算,等价于$a = $a + 1; $b = $a;
echo $b . &#39;<br>&#39; . $a;
-----结果-----
$b = 2 $a = 2

削減の状況は上記と同じです。

代入演算子

基本的な代入演算子は「=」で、実際には、右側の式の値を左側のオペランドに代入することを意味します。

$a = 1;
$b = $a++;//先赋值,在进行++运算,等价于$b = $a; $a = $a + 1;
echo $b . &#39;<br>&#39; . $a;
-----结果-----
$b = 1  $a = 2

+=

-=

/=

などの状況もあります。

$a = 1;
$b = &#39;string&#39;;

文字列演算子には2つの文字列があります。演算子は (".") で、左引数と右引数を連結した文字列を返します。

$a = 1;
$a += 2;//等价于$a = $a + 2;
echo $a;
-----结果-----
3

比較演算子

比較演算子は、値が同じかどうか、データ型が同じかどうかなど、2 つの変数を比較するために使用され、比較結果のほとんどはブール型になります。

一般的な比較演算子は次のとおりです:

$a == $b が true に等しい場合、通常は値が等しいかどうかのみを判断し、型が等しいかどうかは判断しません。は同じ。

$a === $a が $b に等しく、それらの型も同じである場合、$b は合同真です。

  • $a != $b は true に等しくなく、2 つの変数の値が true に等しくない場合は true を返します。型変換後に $a が $b と等しくない場合、上記の状況を記述する別の方法があります。

  • $a !== $b が true に等しくない場合、$a が $b に等しくない場合、またはそれらの型が異なる場合、2 つの変数のいずれかが等しくない場合は true が返されることに注意してください。 (値、型)

  • $a
  • $a > $a が $b より大きい場合、 $b は TRUE より大きくなります。

  • $a 836e5c00c705ea359ec6aafb95605685= $b は、 $a が $b 以上の場合、 TRUE 以上です。

    $a = 1;
    $b = 2;
    echo &#39;$a = &#39; . $a . &#39;  $b = &#39; . $b;
    -----结果-----
    $a = 1 $b = 2;
  • ビット演算子
  • ビット演算子を使用すると、整数内の指定されたビットを

    バイナリ
  • の方法で評価および演算できます。
  • その前に、まずバイナリについて話しましょう


  • バイナリについて簡単に説明します

コンピュータ内のすべての数値はメモリにバイナリ形式で保存されます。率直に言うと、ビット操作はメモリ内の整数のバイナリ ビットを直接操作することです。

バイナリとは: バイナリデータは、0 と 1 の 2 つの数字で表される数値です。基本は 2 で、キャリー ルールは「2 が入力されると 1 が追加される」、借用ルールは「1 を借用して 2 に等しくなります」です。

10進数を2進数に変換します

: 「2で割って余りを取り、逆順に並べます」 (2で割って余りを取ります)

$a = 2;
$b = &#39;2&#39;;
var_dump($a == $b); //判断两个数值是否相等,比较的时候会进行类型转换。
-----结果-----
bool(true)  
var_dump($a === $b);//判断数值和类型是否相等,当时全等比较的时候,不会进行类型转换。
-----结果-----
bool(false)

2進数を10進数に変換します: 「重みで合計を展開します」 コンピュータにおける
        商   余数
3 / 2 = 1.....1
1 / 2 = 0.....1
二进制(逆序排列):
11

12 / 2 = 6....0
6 / 2 = 3.....0
3 / 2 = 1.....1
1 / 2 = 0.....1
二进制:
1100

15 / 2 = 7....1
7 / 2 = 3.....1
3 / 2 = 1.....1
1 / 2 = 0.....1
二进制:
1111

符号ビットには3つの表現形式

があります:

オリジナルコード

アンチコード

相補コード

  • ビット演算を行う際、補数コードに変換して演算します。

  • 正の数の2進数表現
  • は、正の数を示すために先頭に0が付きます。

    正の数の元のコード、補数コード、および補数は同じです(3つのコード)。 1) 負の数の 2 進表現

    は、負の数を示すために先頭に 1 があります。
  • 負の数の元のコードは、公式を使用して計算された2進数であり、補数コードは、符号ビットを除いて他のすべてが反転(1が0になり、0が1になる)することを意味し、補数コードは補数コードです。 +1。
  • 例えば -1

    1111 = 1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 15
    10 = 0 * 20 + 1 * 21 = 2
  • なぜ 32 ビットを書き込む必要があるのか​​というと、私の理解では、整数は 4 バイトを占め、各バイトは 8 ビット、符号ビットを含めて合計 32 ビットです。

これはバイナリシステムの簡単な紹介です

PHPにおけるビット演算子の分類

  • $a & $b  And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。

  • $a | $b  Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1。

  • $a ^ $b  Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。

  • ~ $a  Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。

  • $a 02d433e7892e8ebdbc35963e2a225d71> $b  Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

示例:

与(1 1 = 1; 1 0 = 0;0 0 = 0)

$a = 1 & 2;//进行“与”运算  两个都为1的时候为1,其他为0
// 1的补码
// 00000000 00000000 00000000 00000001
// 2的补码
// 00000000 00000000 00000000 00000010
// 结果
// 00000000 00000000 00000000 00000000 == 0
echo $a;
-----结果-----
0

或(1 1 = 1;1 0 = 1;0 0 = 0)

$a = 1 | 2;//进行“或”运算  至少有一个为1的时候为1,其他为0
// 1的补码
// 00000000 00000000 00000000 00000001
// 2的补码
// 00000000 00000000 00000000 00000010
// 结果
// 00000000 00000000 00000000 00000011 == 3
echo $a;
-----结果-----
3

异或(1 0 = 1; 1 1 = 0; 0 0 = 1)

$a = 3 ^ 2;//进行“异或”运算  一个为1,一个为0的时候为1,其他为0
// 1的补码
// 00000000 00000000 00000000 00000011
// 2的补码
// 00000000 00000000 00000000 00000010
// 结果
// 00000000 00000000 00000000 00000001 == 1
echo $a;
-----结果-----
1

取反(1 = 0; 0 = 1)注意符号位的变化。

$a = ~2;//进行“取反”运算  1变0,0变1
// 2的二进制
// 00000000 00000000 00000000 00000010
// 11111111 11111111 11111111 11111101 前面一个1,是负数
// 反码
// 11111111 11111111 11111111 11111100
// 原码
// 10000000 00000000 00000000 00000011 == -3
echo $a;
-----结果-----
-3

左移(将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”))

左移时右侧以零填充,符号位被移走意味着正负号不被保留。

$a = 1;
// 二进制:
// 00000000 00000000 00000000 00000001
// 左移时右侧以零填充,符号位被移走意味着正负号不被保留。
// 00000000 00000000 00000000 00000100 == 4
echo $a << 2;//将 $a 中的位向左移动2次
-----结果-----
4

右移时左侧以符号位填充,意味着正负号被保留。

$a = 4;
// 右移时左侧以符号位填充,意味着正负号被保留。 
// 00000000 00000000 00000000 00000100
// 00000000 00000000 00000000 00000001 == 1
echo $a >> 2;
-----结果-----
1

到这里位运算符算术基本说完了……

逻辑运算符

逻辑运算符也就是判断逻辑,它的返回结果一般是布尔类型,像与或非等;而PHP中的逻辑运算符有:

  • $a and $b And(逻辑与) TRUE ,如果 $a 和 $b 都为 TRUE 。

  • $a or $b Or(逻辑或) TRUE ,如果 $a 或 $b 任一为 TRUE 。

  • ! $a Not(逻辑非) TRUE ,如果 $a 不为 TRUE 。

  • $a && $b And(逻辑与) TRUE ,如果 $a 和 $b 都为 TRUE 。

  • $a || $b Or(逻辑或) TRUE ,如果 $a 或 $b 任一为 TRUE 。

逻辑与(当表达式的两边都为true的时候结果为真)

两个&符号:

$a = 2;
$b = 3;

if($a > 1 && $b > 2){ //左边的为true,右边的为true;两边都为true,结果为true;
    echo &#39;与&#39;;
}
-----结果-----
与

一个&符号:

$a = 2;
$b = 3;

if($a > 1 & $b > 2){ //左边的为true,右边的为true;两边都为true,结果为true;
    echo &#39;与&#39;;
}
-----结果-----
与

区别:两个&时:如果有一个逻辑判断表达式为假,则后面的逻辑运算就不会执行,俗称短路现象。

一个&:两边的都会判断。不管是真是假。

逻辑或(当左右两个表达式其中有一个是true的时候,为真)

两个|符号:

$a = 2;
$b = 4;

if($a > 1 || $b < 3){ //左边的为true,右边的为false;
    echo &#39;或&#39;;
}
-----结果-----
或

一个|符号:

$a = 2;
$b = 4;

if($a > 1 | $b < 3){ //左边的为true,右边的为false;
    echo &#39;或&#39;;
}
-----结果-----
或

区别:两个|时:如果有一个逻辑判断表达式为真,则后面的逻辑运算就不会执行,短路现象。

一个|:两边的都会判断。不管是真是假。

(!true = false; !false = true)

$a = true;
var_dump(!$a);
-----结果-----
bool(false)

三元运算符

语法为:条件表达式?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
其逻辑为:“如果为真执行第一个,否则执行第二个。”

$a = 456;
$b = $a > 10 ? true : false; //问号前面的结果为真,执行第一个true;
var_dump($b);
-----结果-----
bool(true);

三元运算符可以说是if…else的简化版,在以后的开发中也会经常使用到的。

错误控制运算符

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

当你不想用户看到错误信息可以使用。

总结

说了这么多总算把运算符的大部分都说完了,其中还有数组运算符,类型运算符等,在数组和对象的时候会说。

 以上就是PHP基础教程三之运算符的内容,更多相关内容请关注PHP中文网(www.php.cn)!


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