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


Posted in PHP onAugust 10, 2017

本文实例讲述了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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
PHP遍历文件夹与文件类及处理类用法实例
Sep 23 PHP
php备份数据库类分享
Apr 14 PHP
php生成gif动画的方法
Nov 05 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
May 06 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 PHP
yii2简单使用less代替css示例
Mar 10 PHP
PHP7引入的&quot;??&quot;和&quot;?:&quot;的区别讲解
Apr 08 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
Apr 13 PHP
php中array_fill函数的实例用法
Mar 02 PHP
详解PHP设计模式之依赖注入模式
May 25 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 #PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 #PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 #PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
Aug 10 #PHP
PHP数组内存利用率低和弱类型详细解读
Aug 10 #PHP
Laravel实现定时任务的示例代码
Aug 10 #PHP
PHP编程实现计算抽奖概率算法完整实例
Aug 09 #PHP
You might like
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
JavaScript运算符小结
2015/06/03 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
微信小程序如何获取用户手机号
2018/01/26 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
python dict remove数组删除(del,pop)
2013/03/24 Python
python使用rpc框架gRPC的方法
2018/08/24 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Python绘制动态水球图过程详解
2020/06/03 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
同学聚会欢迎辞
2014/01/14 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
学习之星事迹材料
2014/05/17 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
解除施工合同协议书
2014/10/17 职场文书
大学生实训报告总结
2014/11/05 职场文书
先进事迹材料范文
2014/12/29 职场文书
房租涨价通知
2015/04/23 职场文书
月考总结与反思
2015/10/22 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书