除了上篇的php中引用的问题。php还有几个特有的运算符:
1.@错误控制运算符,放在表达式之前,即使表达式有错误也不会抛出异常。建议不要使用。
2.=== (!==)全等运算,用来判断变量值和类型是否都相等。
3. · ls -l · 执行运算符,和bash类似,用来执行外部command。
4. $arraya + $arrayb 把arraya和arrayb以key做并集,遇到相同的key则保留arraya中的key-value。
5. $arraya == $arrayb 只要有相同的key-value pair就可以,$arraya === $arrayb还要加上顺序和类型。
6. instanceof, 用来判断某个实例是否是某个类的对象。 object instanceof class
由于php是弱类型的,所以比较的时候需要做类型的转换,数字和字符串做比较,字符串转成数字,两个数字字符串做比较,也是转换成数字。switch语句也依照此规则转换类型。
6.流程控制的替代语法,把左花括号({)换成冒号(:),把右花括号(})分别换成 endif; endwhile; endfor; endforeach; 以及 endswitch;。
7. break num, num意味着跳出几重循环。 continue num 跳到第几重循环的最后继续。continue在switch中等同于break。
8. 函数和类都是全局域,在函数内部可以有函数和类的定义。
9.用list复制数组,
$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);//2 => string 'caffeine' (length=8) 1 => string 'brown' (length=5) 0 => string 'coffee' (length=6)
由于是从右到左赋值,相当于数组a的第一个元素下表为2,第二个为1.如果a已经是数组了,则或者覆盖原来的值或者插入新的key-value 对。
10. 用each之前,必须用reset重置数组的指针,否则很可能不是从数组的第一个元素开始。
11.从函数返回引用时,必须在申明和调用时指定 &(e.g. $newref =& returns_reference();)
12. php的类成员函数,无论是否被申明为static,都可以做静态调用。但是对$this的处理有所不同。$this都是未定义有两种情况,静态函数内,成员函数以静态方式调用。但当一个类的成员函数以静态方式调用另外一个类的函数时,另外一个类中的$this初始化为调用者对象。