php的一些小知识
7.获取毫秒级时间
6.使用常量前,应该先定义常量,比如 define('HELLO', '欢迎')
如下,如果不定义而直接使用,会输出字符串HELLO,同时php会抛出一个Notice提示
var_dump(HELLO);
5.file_get_contents
一直以为这是用于读取文件内容的函数,没想到它还可以用来读取网页
var_dump(file_get_contents('https://www.baidu.com'));
4.去除字符串首尾全半角空格
当遇到全角空格时,trim函数已经不能胜任,我们需要其他方式来去除字符串首尾空格,如下所示
$str = ' 《清除前后全半角空格》 ';
var_dump(mb_ereg_replace('^(?:\s| )+|(?:\s| )+$', '', $str));
var_dump(mb_ereg_replace('^[\s]+|[\s]+$', '', $str));
3.empty和isset
empty对于空字符串、整型0、浮点型0.0、字符串0、布尔型 false、null、空数组,等的判断结果为true,例如
var_dump(empty(''));
isset用于判断变量是否已声明。需要注意的是,当变量值为null时,isset会返回false,如下所示
$a = null;
var_dump(isset($a));
2.循环中的引用赋值,在使用完后最好销毁变量
比如
$arr = [1, 2, 3];
foreach ($arr as &$item) {
echo "{$item}";
}
//unset($item);//及时销毁引用赋值变量
foreach ($arr as $item) {
echo "{$item}";
}
运行以上代码,结果为123122,这就是因为$item在第一个foreach结束后,没有被销毁造成的
现在我们来还原一下案发过程:
第一个foreach结束后,把$arr数组中第三个元素的引用赋给了$item;
第二个foreach,第一次循环时,把1赋给了$item,由于$item是引用,因而$arr第三个元素的值变成了1,此时$arr值为[1,2,1]
第二个foreach,第二次循环时,把2赋给了$item,同理,此时$arr值为[1,2,2]
最终,第二个foreach第三次循环时,输出$arr中第三个元素的值,也就是[1,2,2]中的最后一个2
合理的写法是使用完引用赋值后,及时销毁变量
1.双等号(==)和三等号(===)
php双等号不比较数据类型,只比较值;而三等号会比较数据类型和值
以下几个值双等号结果为true:
$a = null;
$b = '';
$c = 0;
$d = false;
var_dump($a == $b && $b == $c && $c == $d);
常规情况下,建议使用三等号,因为双等号有时会造成一些bug,比如:
var_dump('12ab' == 12);
这是由于字符串和整型进行比较时,会先把字符串转化为整型

浙公网安备 33010602011771号