php杂记
逻辑运算
对于整个表达式来说:
或(|| or)两个同时为真则为真
与(&& and)有一个为真则为真
#这里可以用三目运算实现,这里只是为了说明逻辑关系。
$data = array(
array('a'=>'a','b'=>''),
array('a'=>'','b'=>'b'),
array('a'=>'a','b'=>'b')
);
while(list(,$item) = each($data)) {
($item['a'] and $item['b']) and ($result = $item['a'] . $item['b']) or ($item['a'] and ($result = $item['a'])) or ($item['b'] and ($result = $item['b']));
var_dump($result);
}
// string(1) "a"
// string(1) "b"
// string(2) "ab"
位运算
位的偏移运算,2进制
// 1
// 100 化成十进制 2的平方 = 4
echo 1<<2;
类型自动转换
可悲啊,在公司的群里面,发了下面的一道,居然没有一个人去尝试执行结果。
var_dump(0 == 'string'); // true
var_dump(true == 'string'); // true
var_dump(0 == false); //true
都是true?相信后两个的执行结果都能理解,为什么第一个也是true呢?
intval('string'); //0 看到木有,当字符串跟数字比较的时候,php会自动转换字符串为数字,啊哈。再来看看这个 intval('2string'); //2
创建多级目录
mkdir('/test1/test2', 0777, true); //最后一个参数设为true就可以了