本文目录一览:
算术运算符的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了。