1. 산술 연산자
1. 개요
#🎜 🎜 #
2. TIPS나누기 연산자는 항상 부동 소수점 숫자를 반환합니다. 유일한 예외는 두 피연산자가 모두 정수(또는 문자열에서 변환된 정수)이고 정확하게 나눌 수 있는 경우입니다. 이 경우 정수를 반환합니다.
모듈로 연산자의 피연산자는 연산 전에 정수(소수 부분 제외)로 변환됩니다.
모듈로 연산자 %의 결과는 피제수의 부호(양수 또는 음수 부호)와 같습니다. 즉, $a % $b의 결과는 $a와 동일한 부호를 갖습니다. 예:
echo (5 % 3)."\n"; // prints 2 echo (5 % -3)."\n"; // prints 2 echo (-5 % 3)."\n"; // prints -2 echo (-5 % -3)."\n"; // prints -22. 비트 연산자
1 개요
#🎜🎜 #
2. TIPS
Displacement는 PHP의 수학 연산입니다.
어떤 방향으로든 나온 비트는 폐기됩니다. 왼쪽으로 이동하면 오른쪽이 0으로 채워지고 부호 비트가 제거됩니다. 즉, 양수 및 음수 부호는 유지되지 않습니다. 오른쪽으로 이동하면 왼쪽이 부호 비트로 채워지므로 양수 및 음수 부호가 유지됩니다. 비트 연산자를 사용할 때는 우선순위에 특히 주의하세요. 예: $a & $b == true, 먼저 비교한 다음 비트 AND를 수행합니다. ($a & $b) == true, 비트 AND를 수행합니다. 먼저 다시 비교해보세요.3. 비교 연산자
1. 개요
#🎜 🎜 #
2.TIPS
숫자와 문자열을 비교하거나 숫자 내용이 포함된 문자열을 비교하면 문자열이 다음으로 변환됩니다. 숫자 값과 비교는 숫자로 수행됩니다. 이 규칙은 스위치 문에도 적용됩니다. === 또는 !==로 비교할 경우 유형과 값을 모두 비교하므로 유형 변환이 수행되지 않습니다. <?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true
switch ("a") {
case 0:
echo "0";
break;
case "a": // 永远不会到达a,因为 "a" 已经与 0 匹配
echo "a";
break;
}
?>
#🎜 🎜 #
4. 느슨한 비교표4. 🎜🎜#
1. 개요
2. 🎜🎜#
증가/감소 연산자는 부울 값에 영향을 주지 않습니다.NULL 값을 줄여도 효과는 없지만, NULL을 증가시키면 결과는 1이 됩니다.
문자 변수에 대한 산술 연산을 처리할 때 PHP는 C가 아닌 Perl의 습관을 따릅니다. 예를 들어 Perl에서는 $a = 'Z'; $a++; C에서 a = 'Z'; ['('Z'의 ASCII 값은 90이고, '['의 ASCII 값은 91입니다).
문자 변수는 증가만 할 수 있고 감소할 수 없으며 순수 문자(a-z 및 A-Z)만 지원합니다.
다른 문자 변수의 증감은 유효하지 않으며, 원래 문자열은 변경되지 않습니다.
5. 논리 연산자 1. 개요#🎜 🎜 #
2. TIPS"AND"와 "OR"의 연산자 형태가 다른 이유는 연산의 우선순위 때문입니다. 수준이 다릅니다.
// "&&" 比 "and" 的优先级高 // 表达式 (true && false) 的结果被赋给 $g // 等同于:($g = (true && false)) $g = true && false; // 常量 true 被赋给 $h,false 被忽略 // 等同于:(($h = true) and false) $h = true and false;
6. 배열 연산자
1 개요
# 🎜 🎜#2. TIPS
배열의 셀은 키 이름과 값이 동일하면 동일합니다
$a = array("apple", "banana"); $b = array(1 => "banana", "0" => "apple"); var_dump($a == $b); // bool(true) var_dump($a === $b); // bool(false)+ 연산자와 array_merge()의 차이점
배열 첨자가 문자이고 동일한 키 이름을 발견하면 + 연산자는 array_merge()에서 사용하는 다음 값을 버립니다. 나중 값이 이전 값을 덮어씁니다.
배열 첨자가 숫자 값인 경우 array_merge()는 모든 값을 유지하고 배열의 색인을 다시 생성합니다. + 연산자는 동일한 아래 첨자가 포함된 후속 값도 삭제합니다. $arr1 = ['color' => 'red', 10, 20];
$arr2 = [0, 1, 'color' => 'green'];
print_r($arr1 + $arr2);
print_r(array_merge($arr1, $arr2));
출력:
Array ( [color] => red [0] => 10 [1] => 20 ) Array ( [color] => green [0] => 10 [1] => 20 [2] => 0 [3] => 1 )7. 연산자 우선순위 1. 개요# 🎜🎜 #
2.TIPS
연산자 우선순위가 동일하면 연산자의 바인딩 방향은 작동 방식을 결정합니다. 예를 들어 "-"는 왼쪽 관절이고 1 - 2 - 3은 (1 - 2) - 3과 동일하며 결과는 -4입니다. 반면에 "="는 오른쪽 관절입니다. $a = $b = $c는 $a = ($b = $c)와 동일합니다. 没有结合的相同优先级的运算符不能连在一起使用,例如 1 1 在PHP是不合法的。但另外一方面表达式 1 括号的使用,哪怕在不是必要的场合下,通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。 着重记忆: 递增/递减 > ! > 算术运算符 > 大小比较 > (不)相等比较 > 引用 > 位运算符(^) > 位运算符(|) > 逻辑与 > 逻辑或 > 三目 > 赋值 > and > xor > or 3. 实战例题 请写出下列程序输出的结果 例题分析 1.题目中包含 = > || 三种运算符,优先级顺序为 > > || > = 2.$a = 3 > 0 || $b = 3 > 0 等价于 $a = ( ( 3 > 0 ) || $b = ( 3 > 0 ) ) 3.( 3 > 0 ) 为 true,因此不会再运算 || 后面的式子 4.$a = true,所以程序可以改写为 5.因为 “递增/递减运算符不影响布尔值”,所以 $a++ 后,$a 的值依然是 true,echo true,会输出 1 6.因为 $b = 0 ,所以 $b++ 后,$b 的值为 1 7.输出结果为$a = 0;
$b = 0;
if ($a = 3 > 0 || $b = 3 > 0)
{
$a++;
$b++;
echo $a. "\n";
echo $b. "\n";
}
$a = 0;
$b = 0;
if ($a = true)
{
$a++;
$b++;
echo $a. "\n";
echo $b. "\n";
}
1
1
위 내용은 PHP 운영자 지식 포인트 편집의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!