php与运算
⑴ php的比较运算符
$a == $b 等于 如果类型转换后 $a 和 $b 的值相等,则返回 TRUE,否则返回 FALSE
$a === $b 全等 如果 $a 和 $b 不仅值相等,而且它们值的类型也相等,则返回 TRUE,否则返回 FALSE
$a != $b 不等于 如果类型转换后 $a 的值不等于 $b 的值,则返回TRUE,否则返回 FALSE
$a <> $b 不等于 与 != 相同,如果类型转换后 $a 的值不等于 $b 的值,则返回 TRUE,否则返回 FALSE
$a !== $b 不全等 如果 $a 的值不等于 $b的值,或者它们值的类型不同,则返回 TRUE,否则返回 FALSE
$a < $b 小与 如果 $a 的值小于 $b 的值,则返回 TRUE,否则返回 FALSE
$a > $b 大于 如果 $a 的值大于 $b 的值,则返回 TRUE,否则返回 FALSE
$a <= $b 小于等于 如果 $a 的值小于或者等于 $b 的值,则返回 TRUE,否则返回 FALSE
$a >= $b 大于等于 如果 $a 的值大于或者等于 $b 的值,则返回 TRUE,否则返回 FALSE
$a <=> $b 太空船运算符(组合比较符) 当 $a小于、等于、大于 $b时 分别返回一个小于、等于、大于0的整型值。
⑵ 在PHP中【逻辑运算符】和【位运算符】有什么本质的区别
这个很难细说,不过和C语言中的逻辑运算符和位运算符是一样区别的
下面给个参考(摘至某人博客):
一、逻辑运算符:
包括:1。&&逻辑与 2。||逻辑或 3。!逻辑非
逻辑运算符用于对包含关系运算符的表达式进行合并或取非
对于使用逻辑运算符的表达式,返回0表示“假”,返回1表示“真”。关于逻辑运算符的解释
请注意:任何使用两个字符做符号的运算符,两字符之间不应有空格,即将==写成= =是错误的。
假设一个程序在同时满足条件a<10和b==7时,必须执行某些操作。应使用关系运算符和逻辑运算符“与”来写这个
条件的代码。用&&表示“与”运算符,该条件代码如下:
(a<10) && (b==7);
类似地,“或”是用于检查两个条件中是否有一个为真的运算符。它由两个连续的管道符号(||)表示。如果上例
改为:如果任一语句为真,则程序需执行某些操作,则条件代码如下:
(a<10) || (b==7);
第三个逻辑运算符“非”用一个感叹号(!)表示。这个运算符对表达式的真值取反。例如,如果变量s小于10,程序
程序需执行某些操作,则条件代码如下:
(s<10)
或
(!(s>=10)) //s不大于等于10
关系运算符和逻辑运算符的优先级一般都低于算术运算符。例如,5>4+3的计算与5>(4+3)运算符是一样的,即
先计算4+3,再执行关系运算。此表达示的结果为“假”,即,将返回0。
下面的语句
printf("%d",5>4+3);
将输出 0
可以总结为:&&的结果是真真为真。||的结果是假假为假。
二、位运算符:
包括:1。&位与符 2。|位或符 3。^位异或符 4。~位取反符
以操作数12为例。位运算符将数字12视为1100。位运算符将操作数视为位而不是数值。数值
可以是任意进制的:十进制、八进制或十六进制。位运算符则将操作数转化为二进制,并相应地返回1或0。
位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。例如:
表达式10&15表示(1010 & 1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1
表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。
表达式10^15表示(1010 ^ 1111), 它将返回表示0101的值5。此时是同性相斥,相同的就为假。
表达式~10表示(~1010),它将返回表示0101的值 -11。此号好理解,按位取反
⑶ php中&&和and有什么区别
从执行效果上看 没有区别~~
只是 程序一般讲究得是一致性 前面用== 那么我觉得后面用&& 我个人觉得要好看些
呵呵 仅仅是个人意见~~
⑷ 第十二讲 PHP 逻辑运算符
逻辑运算符用来组合逻辑运算的结果,是程序设计中一组非常重要的运算符。
PHP中的逻辑运算符如下表所示:
左右两个条件同时为 TRUE 时,则结果为 TRUE;两个条件中有任意一个条件为 FALSE 时,则结果为 FALSE。当左边的条件为 FALSE 时,将直接跳过右边的条件直接返回 FALSE。
运行结果:
如果两个条件有一个为 TRUE,则结果为 TRUE;如果两个条件都是为 FALSE,则结果为 FALSE。当左边条件为 TRUE,将跳过右边条件的判断,直接返回 TRUE。
调整上面的示例:
运行结果:
将一个布尔值进行取反操作。例如:!true = false、!false = true、!10 = false。
调整上面的示例:
⑸ php 的位运算总结
php的位运算很少会用到,但是用处很大,
在有些算法中会用到,在权限管理中也会经常用到,
对于理解计算机的世界也会有一定的帮助,所以得把这些重要但不常用的东西总结一下记录一下。
提到位运算,避不开的是二进制。
因为位运算是直接在内存做操作和运算,相较与直接拿两个变量做运算符肯定是更快的。
很多地方把二进制这玩意说得很晦涩,现在来以最简单的方式来总结一下,当然只算 int 范围内的数算了,超过了这个范畴程序员还不如拿这时间去学点别的。
说完以上总结,再来解释下什么是二进制,网上大把,
但只要记住,int范围内的数也就是我们大部分需要用到的数,都可以用二进制来表示。
我们生活中用到的计数方式为十进制,由个数位满10进1,
然后再开始重新计算,等十位满9再加一时,百位加一,十位归零。
二进制则只有两个数字来表示就是0和1,满2进1。
由32个位组成,虽然只有32个位但已满足了我们正常的需求了
比如说1转换为2进制原码,由于1是正数所以符号位为0,
原码反码补码都一个样。
1的原码:00000000 00000000 00000000 00000001
因手懒,太多0太丑用+拼接,Ɔ* 8'代表8个0
2的原码:0* 8 0* 8 0* 8 0* 6 + 1 0,既然是二进制,
满2就得进1,最低位归0,向前加一。
再来解释下负数的原码反码和补码,就开始讲php的位运算了。
二进制复习完毕。下面开始讲讲php的位运算。
php一共有六种位运算,一种一种来讲。
可以这么理解,两个数的补码放在一起比较每个位(一共32个位),
可以得出另外一个数,这个数字的组成由比较的两位数字生成,
如果两个数的每个位数上的数字都等于1的话,
那得到的那个数的补码的同位为1,否则为0。
听着绕口,其实很简单,觉得还是比官网上的更容易让新手看懂
下面举例子:
首先来求-1和7的补码。7的原码就是补码。
两个补码都有了下面开始运算:
按照上面的说法, 每个位都有一样则 $a 的同等位则为1,刚好-1的补码和7的补码前面都不一样,就最后三位一样,所以刚好求得的 $a 的补码的最后三位是1而其他的都是0 ,刚好这个补码为正数,正好就是7。
其实就是和按位与相反,只要有1个为1,那就为1,如果都不为1,那就为0。
$a = -1|7 ;得出来的 $a 补码为32个1,但此时不能说 $a 就是-1,因为这只是补码,要转成原码再转成十进制数,补码-1,然后再翻转,再转出来,得到的其实也还是-1。
就是将这个数的补码全部翻转过来,包括符号位,0变1,1变0
取反的结果一定是整数变负数负数变正数,取正数的反时,
记得一定要从补码一步步转到原码再转成十进制数才是答案。
两个数的补码比较,同等位上的两数比较
,不一样时,则答案的补码的同位则为1,否则为0。
往左移符号位被挤走右边0补充,往右移动,符号位不动,
高位以符号位补充。二进制世界里往左移动其实是相当于乘以了2,
右移相当于除以了2。
不吹牛逼的说,这应该是互联网上最容易理解的php位运算的解释和二进制的解释了。
原文链接: php的位运算总结-PHP
⑹ php怎么把获取到的数组值‘1+1’转换成1+1 可以运用与运算
1+1,要先提取+左右两边的数值,然后再做运算。
做法:
1、先获得1+1这个字符串中+的位置,用instr函数,比如你发送给她的字符串1+1保存在变量s中,那么就可以获得+号的位置,n=instr(s,"+")
2、或者+左右两边的数据,左边的:lnum=val(left(s,n-1)),右边的:rnum=val(right(s,len(s)-n))
3、再把左右两边的数据相加,result=lnum+rnum
同样减、乘、除都可以,只是要做一下判断,代码会比较多。就不写了。除了判断条件,基本上和上面差不多
⑺ php中&&与&有什么区别
PHP中&&与&的区别:
1、运算符性质的区别
&&在PHP中是一个逻辑操作符,也叫条件操作符。
&是逻辑语言,逻辑上表示两者属于缺一不可的关系,还可以表示一个人和另外一个人之意,与and同义。如A&B,表示A与B,A和B,A×B。
2、作用上的区别
&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。
&是将两个二进制的数逐位相与,结果是相与之后的结果。
3、用途上的区别
&&:x&&y——功能描述: “条件与”:x和y均为true,取值是true,否则取值是false。&&需要两个操作数的值都是true时,才取值true,但是两个操作符还是有区别的:使用方法是int&& rx=x。
&:是一个位运算符。参加运算的两个数的二进制形式,每一个二进制位进行”与“运算,最后的结果二进制作为结果,例如:3 & 5=1,因为3和5的二进制分别是0011、0101,两个进行与运算的结果是0001。
⑻ php运算中a++与++a的区别。
++a跟a++都是自加,但是两个的运算顺序是不同的,所有或导致运算结果不同。
++a
在表达式中,是先执行自动加1在其他的运算,类似(++a),先执行小括号里面的;
a++
是先执行表达式中其他运算,再执行自加。
eg:
$a
=
0;
if(++a
){echo
"a=1";}else{echo
"a=0";}
及$a
=
0;
if(a++){echo
"a=1";}else{echo
"a=0";}
++a
的判断
是先执行++
及
a=a+1
=1
然后在判断表达式是否成立;
a++
的判断是先判断表达是否成立,在执行++
⑼ 怎么用php编写加减乘除
可以参考下面的代码:
<?php
$a = 1;
$b = 2;
加法: $sum = $a + $b;
减法: $sum = $a - $b;
乘法: $sum = $a * $b;
除法: $sum = $a / $b;
(9)php与运算扩展阅读:
PHP的加密函数有crypt()、 md5() 和sha1() 这3种, 其中crypt() 用于单向加密, 所谓的单向加密就是将需要加密的内容进行加密之后, 无法将密文转换成为可读的内容, 因此单向加密的应用范围较狭窄, 一般用于用户名认证和密码输入等情况。
当用户进入系统时,只需要将密文口令输 入,经过系统验证与存储的口令一致, 即可通过。
sha1() 函数使用了SHA-1的散列算法,其原理与md5() 类似。
⑽ PHP++和+运算
首先从整体上看,两个算式都是加法运算,
第一个是$a 和 $a++的相加,++优先级高于+,所以先算$a++,$a变成2,所以是 2+1=3
第二个是$a 和 $a 和$a++的连加,虽然++优先级高于+,但整体上他是一个连加式,还是从左往右计算的,相当于x+x+y,所以是1+1+1=3.
换成数学就是 x+y*z 和 w+x+y*z这样的。