• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP弱类型语言中类型判断操作实例详解

php 搞代码 4年前 (2022-01-01) 56次浏览 已收录 0个评论

这篇文章主要介绍了PHP弱类型语言中类型判断操作,结合实例形式分析了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><p>'; var_dump(1=='2a');  //false echo '</p><p>'; var_dump(1=='a1');  //false echo '</p><p>'; var_dump("1"=='1a');  //false echo '</p><p>'; var_dump('51a'+6);  //57 echo '</p><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><p>'; var_dump(empty($c));  //true echo '</p><p>'; var_dump(empty($d));  //true echo '</p><p>'; var_dump(empty($e));  //true echo '</p><p>'; var_dump(empty($f));  //true echo '</p><p>'; var_dump(isset($a));  //false echo '</p><p>'; var_dump(isset($b));  //true echo '</p><p>'; var_dump(isset($c));  //true echo '</p><p>'; var_dump(isset($d));  //true echo '</p><p>'; var_dump(isset($e));  //true echo '</p><p>'; var_dump(isset($f));  //true echo '</p><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 ){ <i style="color:transparent">来源gaodai$ma#com搞$代*码网</i>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弱类型语言中类型判断操作实例详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP弱类型语言中类型判断操作实例详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址