php取整算术运算符,php 运算符 - code学院的个人空间 - OSCHINA - 中文开源技术交流社区...

一、前言

能够实现某种运算功能的符号。

根据不同的功能,可以分为以下几大类:

1.算术运算符

2.赋值运算符

3.字符串运算符

4.比较运算符

5.递增/递减运算符

6.逻辑运算符

7.位运算符

8.错误控制运算符

9.三目运算符

不同的运算符所对应的的运算数是不同的,单目、双目、三目。一个运算符在进行运算的时候,需要确保运算数是一致的。

二、算数运算符

ssysf.png

除法运算的结果,可能是浮点数,也可能是整数。

在取模运算中,如果有小数,则会去除小数部分。

在取模运算中,结果的正负取决于第一个数。

ssysf1.png

三、赋值运算符

赋值运算符就是 =

$a = ‘php’

[思考]:$a = ($b = 4) + 5; 这行代码如何理解? $a = 9

赋值运算表达式的值也就是所赋的值。也就是说,“$a = 3”的值是 3。

表达式也是有值的。

有时候我们还将 = 和其它的运算组合到一起,形成组合赋值。

$a = $a + 5 => $a += 5;

四、字符串运算符

字符串运算符只有一个,就是 点 . ,没有加号,

注意的是,点 和 赋值运算符一起 形成 组成赋值。

zfcysf.png

五、比较运算符

bjysf.png

比较运算符,比较两个运算数的关系,返回的结果是一个布尔值。

不等有两种写法,!= 和<>

bjysf1.png

bjysf2.png

注意细节:

如果比较一个整数和字符串,则字符串会被转换为整数。如果比较两个数字字符串,则作为整数比较。

=== 和 == 的区别。比如 0 == false 返回真,而0 === false 返回假

bjysf3.png

六、递增递减运算符

++ 和 --

根据其位置的不同,又分为前++,前--,后++,后--

前置和后置的区别?

不管是前置还是后置,变量的结果是一致的。

不同的运算的顺序,通过表达式来分析,前置,++$b,是先进行运算,然后再得到值,

而后置$b++,则是先得到值,然后进行运算。

dzdj.png

☞ 注意细节

递增/递减运算符不影响布尔值。递减 NULL 值也没有效果,但是递增 NULL 的结果是 1

dzdj1.png

dzdj2.png

七、逻辑运算符

ljysf.png

与:两者都为true的情况才为true and

ljysf1.png

或:两者都为false的才为false or

ljysf2.png

非:非真即假,非假即真,直接取反。 !

异或:xor,如果两者相异,结果为真,两者相同,结果为假。

ljysf3.png

之所以出现 && 和and 两种运算符,是由于它们的优先级不同。

短路运算:

在进行逻辑运算的时候,如果通过第一个参数已经能够确定整个表达式的值,那么就不会进行后面的运算。

ljysf4.png

对于 与 运算,如果第一个为假,则后面的不会进行计算。

对于 或 运算,如果第一个为真,则后面的不会进行计算

真实的代码:

ljysf5.png

八、位运算

按位进行运算,

位,bit,是指二进制表示中的每一个数值。 010101

字节 Byte,是由位构成的,通常是8 bit 00001010

1KB = 1024 Byte

1MB = 1024 KB

1GB = 1024 MB

1TB = 1024GB

wys.png

已知$a = 9,$b = -4,分别求: $a & $b, $a | $b, ~$b,$a ^ $b,$a >>2, $b<<2的值。

位运算都是以二进制的形式来出现的。

同时要注意,二进制的表示形式有 原码、反码、补码。

原码:

将十进制转成的二进制。用最高位表示符号位,0表示正数,1表示负数。

wys1.png

反码:

对于正数,反码和原码相同

对于负数,符号位不变,其它位取反。

wys2.png

补码:

对于正数,补码和原码相同

对于负数,在反码的基础上 + 1。

wys3.png

计算机在底层进行运算的时候,是以补码的形式进行的。Why?

wys4.png

$a & $b $a | $b的过程:

wys5.png

Ø 右移:低位溢出,符号位不变,高位用符号位补全 (相当于除以2n 然后取整)

Ø 左移:高位溢出,符号位不变,低位补0 (相当于乘以2n)

$a >> 2 和 $b << 2的运算过程:

wys6.png

不管是左移还是右移,它只会改变该数的大小,不改变符号,所以在移位操作的时候,符号位始终是不变的。

在实际编程的时候,经常会用一个位表示一种状态(或一个值)。

wys7.png

wys8.png

九、错误控制运算符

cwkzysf.png

我们不期望看到错误,可以使用错误控制运算符进行屏蔽。

不是在每个会出现错误的地方使用这个运算,一般而言,对于我们无法控制的错误,比如去请求其它的资源的时候,可以使用。

☞ 注意细节

@ 运算符只对表达式有效。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。

十、三目运算符

从名字我们就可以得知,这个运算符有三个运算数。?

从名字我们就可以得知,这个运算符有三个运算数。? :

表达式1 ? 表达式2 : 表达式3

等价于一个简单的if……else语句

If (表达式1){

表达式2

} else {

表达式3

}

smysf.png

使用三目运算符可以简化程序。

☞ 注意细节

Ø 运算符优先级指定了两个表达式绑定得有多“紧密”。

Ø 同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

Ø 必要时可以用括号来强制改变优先级。可以增强代码的可读性。

Ø && || 与 and or的区别

Ø 尽管 = 比其它大多数的运算符的优先级低,PHP 仍旧允许类似如下的表达式:if (!$a = foo()),在此例中 foo() 的返回值被赋给了 $a。

如果在编写代码的时候,对于运算比较复杂(运算符较多),可以使用()来改变优先级。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值