♠ 赋值操作的顺序是由右到左的
$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 对象