>  기사  >  백엔드 개발  >  PHP 기본 튜토리얼 세 가지 연산자

PHP 기본 튜토리얼 세 가지 연산자

黄舟
黄舟원래의
2017-03-01 09:28:491298검색

이 섹션에 설명된 내용

  • 산술 연산자

  • 증가 및 감소 연산자

  • 대입 연산자

  • 문자열 연산자

  • 비교 연산자

  • 비트 연산자

  • 논리 연산자

  • 삼항 연산자

  • 오류 제어 연산자

서문

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 . &#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

string 연산자

에는 두 개의 문자열이 있습니다. 연산자는 (".")이며 왼쪽 및 오른쪽 매개변수와 연결된 문자열을 반환합니다.

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

비교 연산자

비교 연산자는 두 변수를 비교하여 값이 같은지, 데이터 유형이 같은지, 그리고 대부분의 비교 결과는 부울 유형입니다.

일반적인 비교 연산자는 다음과 같습니다.

  • $a == $b가 true와 같습니다. $a == $b인 경우 일반적으로 숫자 값만 표시됩니다. 동일한 것으로 판단되며 유형이 동일한지 여부를 결정하지 않습니다.

  • $a === $b 합동 $a가 $b와 같고 해당 유형이 동일한 경우 참입니다.

  • $a != $b는 true와 같지 않으며, 두 변수의 값이 같지 않으면 true를 반환합니다.

  • $a < ;> $b는 true가 아닙니다. 유형 변환 후 $a가 $b와 같지 않은 경우 위 상황을 작성하는 다른 방법이 있습니다.

  • $a !== $b는 true와 같지 않습니다. $a가 $b와 같지 않거나 해당 유형이 다른 경우 두 변수 중 하나가 같지 않으면 true가 반환됩니다. ;(숫자, 유형)

  • $a f447099206f79e8abe0e935cb7c800b6 $a가 $b보다 큰 경우 $b는 TRUE보다 큽니다.

  • $a a40332819565e793dd531f4e8f4aee00= $a가 $b보다 크거나 같으면 $b는 TRUE보다 크거나 같습니다.

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

비트 연산자

비트 연산자를 사용하면

이진수의 정수로 비트를 지정하여 평가할 수 있습니다. 그리고 운영합니다.

그 전에 먼저 바이너리에 대해 이야기해보자

바이너리에 대한 간략한 소개

컴퓨터에서는 모든 숫자가 Stored in으로 메모리에 저장된다. 이진 형태. 직설적으로 말하면 비트 연산은 메모리에 있는 정수의 이진 비트에 직접 연산을 수행하는 것입니다.

바이너리란 무엇입니까? 바이너리 데이터는 0과 1이라는 두 자리 숫자로 표현되는 숫자입니다. 2를 기본으로 하고, 캐리규칙은 "2개를 입력하면 1개를 더한다", 차용규칙은 "1개를 빌려 2개로 한다"이다.

10진수를 2진수로 변환: "2로 나누고 나머지를 취하고 역순으로 정렬"(2로 나누고 나머지를 취함)

$a = 1;
$b = 2;
echo &#39;$a = &#39; . $a . &#39;  $b = &#39; . $b;
-----结果-----
$a = 1 $b = 2;

이진수를 십진수로 변환: "Expand sum by Weight"

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

컴퓨터에는 기호 비트의 세 가지 표현 형식이 있습니다:

  • 원본 코드

  • 1의 보수

  • 1의 보수

비트 연산을 수행할 때 변환됩니다. 의 연산을 위해 2의 보수로 변환합니다.

양수의 이진수 표현 양수를 표현하는 이진수 앞에 0이 붙는다는 것양수의 원래 코드, 역코드 , 보수코드는 같습니다(3개의 코드가 하나로 되어있습니다)

음수의 이진수 표현은 음수를 표현하는 이진수 앞에 1이 붙는다는 것입니다 . 음수의 원래 코드는 수식을 사용하여 얻은 이진수입니다. 보수 코드는 부호 비트를 제외한 모든 것이 반전(1이 0이 되고, 0이 1이 됨)되는 것을 의미하며, 보수 코드는 보완 코드 + 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

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으로 문의하세요.