1.引用
引用操作符可以在关联赋值中使用。通常,将一个变量的值赋给另一个变量的时候,先产生原变量的一个副本,然后再将它们保存在内存的其他地方。比如:
$a = 5;
$b = $a;
这两行代码首先会产生$a的一个副本,然后再将它保存到$b中。如果随后改变$a的值,$b的值不会改变:
$a = 7;//$b仍旧是5
可以使用引用操作符来避免这样的副本。比如:
$a = 5;
$b = &$a;
$a = 7;//现在$a和$b都是7
引用就像是一个别名,而不是指针。$a和$b都指向了内存中的相同地址。可以通过重置它们来改变所指向的地址,如:
unset($a);
重置不会改变$b(7)的值,但是可以破坏$a和值7保存在内存中的连接。
2.比较操作符
2.1 等于操作符
相等的比较操作符==(两个等于号)测试两个值是否相等。一般来说,非0数值都是true,0值为false。如:
$a = 5;
$b = 7;
$a = $b;
测试$a = $b,结果是true。因为,表达式$a = $b的值就是赋给左边的值,为7,非0,所以true。但是如果测试$a == $b,那么就是false。
2.2 其他的比较操作符
恒等操作符===(三个等于号),只有当操作符两边的操作数相等并且具有相同的数据类型时,其返回值才是true。例如, 0 == ‘0’ 将为true,而 0 === ‘0’ 为false,因为左边的0是一个整数,而右边的0是一个字符串。
操作符 | 名称 | 使用方法 |
---|---|---|
== | 等于 | $a == $b |
=== | 恒等 | $a === $b |
!= | 不等 | $a != $b |
!== | 不恒等 | $a !== $b |
2.3 数组操作符
PHP中提供了一些数组操作符。在某些数组上下文中,也可以使用=>操作符,也可以使用许多其他操作符:
操作符 | 名称 | 使用方法 | 结果 |
---|---|---|---|
+ | 联合 | $a + $b | 返回一个包含$a和$b中所有元素的数组 |
== | 等于 | $a == $b | 如果$a和$b中含有相同的元素,返回true |
=== | 恒等 | $a === $b | 如果$a和$b中含有相同的元素及相同的顺序,返回true |
!= | 不等 | $a != $b | 如果$a和$b不是等价的,返回true |
!== | 不恒等 | $a !== $b | 如果$a和$b不是恒等的,返回true |
3.可变函数
3.1 测试和设置变量类型
大部分的可变函数都是用来测试一个函数的类型的。常见的有:gettype()和settype()。例如:
$a = 56;
echo gettype($a).'<br>';
settype($a, 'double');
echo gettype($a).'<br>';
PHP还提供了一些特定类型的测试函数。每一个函数都使用一个变量作为参数,并且返回true或false。
- is_array()
- is_double()、is_float()、is_real()
- is_long、is_int()、is_integer()
- is_string()
- is_object()
- is_resource()
- is_null()
- is_scalar()–检查该变量是否为标量,也就是,一个整数、布尔值、字符串或者浮点数
- is_numeric()–检查该变量是否是任何类型的数字或数字字符串
- is_callable()–检查该变量是否是有效的函数名称
3.2 测试变量状态
PHP有几个函数可以用来测试变量的状态,第一个函数就是isset()。这个函数需要一个变量名称作为参数,如果这个变量存在则返回true,否则false。对应的函数unset()来销毁一个函数。
函数empty()可以用来检查一个变量是否存在,以及它的值是否为非空或非0,相应的返回值是true或false。
未完待续……