산술 연산자
증가 및 감소 연산자
대입 연산자
문자열 연산자
비교 연산자
비트 연산자
논리 연산자
삼항 연산자
오류 제어 연산자
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 = 3; $b = 2; $res = $a % $b; echo $res; -----结果----- 1
++$a: $a 값에 1을 더한 다음 $a를 반환합니다. 이는 사전 증분입니다.
$a++는 $a를 반환한 다음 $a의 값에 1을 더합니다. 이는 사후 덧셈입니다.
–$a $a 값을 1만큼 감소시킨 다음 이전에 감소한 $a 를 반환합니다.
$a – $a를 반환하고 $a의 값을 1만큼 감소시킨 다음 감소시킵니다.
++$a
아아아아아$a++
아아아아아축소 상황은 위와 같습니다.
기본 대입 연산자는 "="로, 실제로는 오른쪽 표현식의 값을 왼쪽 연산에 할당한다는 의미입니다. 숫자.
$a = 1; $b = ++$a;//先++,在进行赋值运算,等价于$a = $a + 1; $b = $a; echo $b . '<br>' . $a; -----结果----- $b = 2 $a = 2
+=, -=, /= 등
$a = 1; $b = $a++;//先赋值,在进行++运算,等价于$b = $a; $a = $a + 1; echo $b . '<br>' . $a; -----结果----- $b = 1 $a = 2
$a = 1; $b = 'string';
$a = 1; $a += 2;//等价于$a = $a + 2; echo $a; -----结果----- 3
이진수의 정수로 비트를 지정하여 평가할 수 있습니다. 그리고 운영합니다.
그 전에 먼저 바이너리에 대해 이야기해보자10진수를 2진수로 변환: "2로 나누고 나머지를 취하고 역순으로 정렬"(2로 나누고 나머지를 취함)
$a = 1; $b = 2; echo '$a = ' . $a . ' $b = ' . $b; -----结果----- $a = 1 $b = 2;
이진수를 십진수로 변환: "Expand sum by Weight"
$a = 2; $b = '2'; var_dump($a == $b); //判断两个数值是否相等,比较的时候会进行类型转换。 -----结果----- bool(true) var_dump($a === $b);//判断数值和类型是否相等,当时全等比较的时候,不会进行类型转换。 -----结果----- bool(false)
컴퓨터에는 기호 비트의 세 가지 표현 형식이 있습니다:
양수의 이진수 표현 양수를 표현하는 이진수 앞에 0이 붙는다는 것양수의 원래 코드, 역코드 , 보수코드는 같습니다(3개의 코드가 하나로 되어있습니다)
음수의 이진수 표현은 음수를 표현하는 이진수 앞에 1이 붙는다는 것입니다 . 음수의 원래 코드는 수식을 사용하여 얻은 이진수입니다. 보수 코드는 부호 비트를 제외한 모든 것이 반전(1이 0이 되고, 0이 1이 됨)되는 것을 의미하며, 보수 코드는 보완 코드 + 1.
商 余数 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
$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 << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
$a >> $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 '与'; } -----结果----- 与
一个&符号:
$a = 2; $b = 3; if($a > 1 & $b > 2){ //左边的为true,右边的为true;两边都为true,结果为true; echo '与'; } -----结果----- 与
区别:两个&时:如果有一个逻辑判断表达式为假,则后面的逻辑运算就不会执行,俗称短路现象。
一个&:两边的都会判断。不管是真是假。
逻辑或(当左右两个表达式其中有一个是true的时候,为真)
两个|符号:
$a = 2; $b = 4; if($a > 1 || $b < 3){ //左边的为true,右边的为false; echo '或'; } -----结果----- 或
一个|符号:
$a = 2; $b = 4; if($a > 1 | $b < 3){ //左边的为true,右边的为false; echo '或'; } -----结果----- 或
区别:两个|时:如果有一个逻辑判断表达式为真,则后面的逻辑运算就不会执行,短路现象。
一个|:两边的都会判断。不管是真是假。
非(!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)!