';
var_dump(1=='1a'); //true
echo '
';
var_dump(1=='2a'); //false
echo '
';
var_dump(1=='a1'); //false
echo '
';
var_dump("1"=='1a'); //false
echo '
';
var_dump('51a'+6); //57
echo '
';
var_dump('a51'+6); //6
2、在PHP中,== 会先进行类型转换,再进行对比,而===会先比较类型,如果类型不同直接返回不相等,参考如下示例
$a = null;
$b = '';
$c = 0;
echo ($a == $b) ? 1 : 0; // 输出1
echo ($a === $b) ? 1 : 0; // 输出0
echo ($a == $c) ? 1 : 0; // 输出1
echo ($a === $c) ? 1 : 0; // 输出0
echo ($b == $c) ? 1 : 0; // 输出1
echo ($b === $c) ? 1 : 0; // 输出0
3、php中的empty和isset函数
1)变量为:0,"0",null,'',false,array()时,使用empty函数,返回的都为true
2)变量未定义或者为null时,isset函数返回的为false,其他都未true
$a = null;
$b = '';
$c = 0;
$d = "0";
$e = false;
$f = array();
var_dump(empty($a)); //true
echo '
';
var_dump(empty($b)); //true
echo '
';
var_dump(empty($c)); //true
echo '
';
var_dump(empty($d)); //true
echo '
';
var_dump(empty($e)); //true
echo '
';
var_dump(empty($f)); //true
echo '
';
var_dump(isset($a)); //false
echo '
';
var_dump(isset($b)); //true
echo '
';
var_dump(isset($c)); //true
echo '
';
var_dump(isset($d)); //true
echo '
';
var_dump(isset($e)); //true
echo '
';
var_dump(isset($f)); //true
echo '
';
var_dump(isset($g)); //false
4、使用strpos之类的函数要用恒等于来判断
$sms = "abc";
if(strpos($sms,'a') != false ){
echo 1;
}else{
echo 2;
}
这种情况,很明显是判断abc字符串中,是否包含a,预期结果应该是要输出1的,实际结果输出为2。这是因为strpos函数匹配不到目标字符串时,返回false,匹配到了目标字符串时,会返回目标字符串,在搜索字符串中的索引位置,此处返回了0。
$sms = "abc";
if(strpos($sms,'a') !== false ){
echo 1;
}else{
echo 2;
}
改成恒等于,才是正确的。
5、换行需要双引号
$time = date('Y-m-d H:i:s').'\r\n';
file_put_contents('filename.txt', $time , FILE_APPEND);
如果这样写,打开文件是这样的2016-09-02 08:04:04\r\n2016-09-02 08:04:05\r\n2016-09-02 08:04:05\r\n2016-09-02 08:04:05\r\n2016-09-02 08:04:22
正确的写法是\r\n,使用双引号包起来
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP运算与运算符用法总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》及《PHP数组(Array)操作技巧大全》
希望本文所述对大家PHP程序设计有所帮助。
上一篇:php三种实现多线程类似的方法
下一篇:PHP弱类型的安全问题详细总结
QQ客服
公众号
手机版
帮助中心