PHP弱类型语言中类型判断操作实例详解
本文实例讲述了PHP弱类型语言中类型判断操作。分享给大家供大家参考,具体如下
1、php一个数字和一个字符串进行比较或者进行运算时,PHP会把字符串转换成数字再进行比较。PHP转换的规则的是若字符串以数字开头,则取开头数字作为转换结果,若无则输出0。
例如123abc转换后应该是123,而abc则为0,0==0这是成立的.具体可以参考官方手册如果比较一个整数和字符串,则字符串会被转换为整数
$a = ($b=4)+5; echo $a; //9 echo '<p>'; var_dump(1=='1a'); //true echo '<p>'; var_dump(1=='2a'); //false echo '<p>'; var_dump(1=='a1'); //false echo '<p>'; var_dump("1"=='1a'); //false echo '<p>'; var_dump('51a'+6); //57 echo '<p>'; 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 '<p>'; var_dump(empty($b)); //true echo '<p>'; var_dump(empty($c)); //true echo '<p>'; var_dump(empty($d)); //true echo '<p>'; var_dump(empty($e)); //true echo '<p>'; var_dump(empty($f)); //true echo '<p>'; var_dump(isset($a)); //false echo '<p>'; var_dump(isset($b)); //true echo '<p>'; var_dump(isset($c)); //true echo '<p>'; var_dump(isset($d)); //true echo '<p>'; var_dump(isset($e)); //true echo '<p>'; var_dump(isset($f)); //true echo '<p>'; 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程序设计有所帮助。
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指