您的位置:

php中的算术运算符,php的比较运算符

本文目录一览:

算术运算符的php运算符

表格 15-2. 算术运算符 例子 名称 结果 -$a 取反 $a 的负值。 $a + $b 加法 $a 和 $b 的和。 $a - $b 减法 $a 和 $b 的差。 $a * $b 乘法 $a 和 $b 的积。 $a / $b 除法 $a 除以 $b 的商。 $a % $b 取余 $a 除以 $b 的余数。 除号(“/”)总是返回浮点数,即使两个运算数是整数(或由字符串转换成的整数)也是这样。

注: 取模 $a % $b 在 $a 为负值时的结果也是负值。

PHP语言PHP语言里的位运算符&、|、^ 、~、〈〈 、〉〉这些符号我一个也不懂,希望高手给个全面的解释!拜

"" 按位与运算

按位与运算符""是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。

例如:95可写算式如下:

00001001 (9的二进制补码)

00000101 (5的二进制补码)

00000001 (1的二进制补码)

?php

$a = 9;

$b = 5;

echo sprintf("%b", $a$b);

?

"|" 按位或运算

按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

例如:9|5可写算式如下:

00001001

|00000101

00001101 (十进制为13)可见9|5=13

?php

$a = 9;

$b = 5;

echo sprintf("%b", $a|$b)."\n"; //二进制

echo sprintf("%d", $a|$b)."\n"; //十进制

"^" 按位异或运算

按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下:

00001001

^00000101

00001100 (十进制为12)

?php

$a = 9;

$b = 5;

echo sprintf("%b", $a^$b)."\n"; //二进制

echo sprintf("%d", $a^$b)."\n"; //十进制

"~" 求反运算

求反运算符~为单目运算符,具有右结合性。其功能是对参与运算的数的各二进位按位求反。

例如~9的运算为:

~(0000000000001001)结果为:1111111111110110

?php

$a = 9;

$b = 5;

echo sprintf("%b", ~$a)."\n"; //二进制

"〈〈" 左移运算

左移运算符“”是双目运算符。其功能把“ ”左边的运算数的各二进位全部左移若干位,由“”右边的数指定移动的位数,高位丢弃,低位补0。

例如:

a4

指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。

?php

$a = 3;

$temp = $a4;

echo sprintf("%d", $temp)."\n"; //十进制

“” 右移运算

右移运算符“”是双目运算符。其功能是把“ ”左边的运算数的各二进位全部右移若干位,“”右边的数指定移动的位数。

例如:

设 a=48,

a4

表示把00110000右移为00000011(十进制3)。

应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定

?php

$a = 48;

$temp = $a4;

echo sprintf("%d", $temp)."\n"; //十进制

关于PHP运算符+和.的问题

其他语言中有的+就是连接的意思,但是在php中+就是加法运算的意思。连接两个字符的符号是“. ”。举个例子

假如$str=20;

$arr[$i]=50;

$str.=$arr[$i];翻译一下就应该是$str=20;连接上$arr[$i]=50;并且把新的字符串的值赋给变量$str。如果这个不明白的话,就换个说法,就是$str.=$arr[$i];翻译出来就是$str=$str连接$arr[$i];等号后面的内容“$str连接$arr[$i]”的值付给了$str;也就是$str=20连接50;也就是$str=2050;

如果是$str+=$arr[$i]的话,和上面的一样,只是把连接换成了加法。

不知道你id前面的?是写错了还是什么意思。那个++++的应该没什么意思,就是一串字符串,不用当成自增也就是“++”处理。因为那一串++和i都是在‘’当中的。如果是$str++的话,就应该是20+1了。