0919表达式&运算符注意点

♠ 赋值操作的顺序是由右到左的

$c = $b / $a

$c的类型取决于 $b / $a 计算下来的值 可以是 integer OR float ...

算术运算符
例子名称结果
-$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 的符号相同。

$a % $b 取模 余数的符号 仅与 $a 有关


=== 全等于,(不仅值相等,连变量类型也相等)
!== 不全等于

在不同的类型比较时,
PHP程序本身
会把变量转换成一致的类型,然后再去比较.

1: 布尔值 --> 字符串
2: 字符串 --> 数字的转换
3: 字符串 --> 布尔的转换
4: 数字 ---> 布尔的转换
5: 数字 ---> 字符串转换.

其实有的语言中,根本就没有布尔型,都是拿 1, 0 充当 true/false用.
0, 0.0, 这两个值,转换成布尔是 false,
其他 都是true, 包括负数,也是true

1: 布尔值 --> 字符串
true --> '1'
false ---> '';

2: 字符串 --> 数字的转换
从字符串左端开始找数字,直到第一个非数字结束,取出来的这一部分,即是转换后的值.

'3q' ===> 3
'123abc456' ===> 123
'fdsafdsaf789' === > 0

3: 字符串 --> 布尔的转换
''字符串,'0',这种转换成 false,
其他一概是true

4:数字 --> 布尔
只有整型的0,和浮点0.0, 转成false
其他,甚至负数,也转成ture

5:数字 -->字符串
直接是字面本身

字符串拼接符号 .

echo $a.$b.$c; 多一次拼接,先拼接再输出,

echo $a,$b,$c; 少一次拼接,快一点,挨个输出


补充:

当转换为 boolean 时,以下值被认为是 FALSE

  • the 布尔值 FALSE 自身
  • the 整型值 0 (零)
  • the 浮点型值 0.0 (零)
  • 空 字符串, 以及 字符串 "0"
  • 不包括任何元素的数组
  • 不包括任何成员变量的对象(仅PHP 4.0 适用)
  • 特殊类型 NULL (包括尚未设定的变量)
  • 从没有任何标记(tags)的XML文档生成的SimpleXML 对象 

 

原文地址:https://www.cnblogs.com/zy2012/p/3359294.html