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 相关文章推荐
PHP+MySQL5.0中文乱码解决方法
Nov 20 PHP
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
PHP时间戳使用实例代码
Jun 07 PHP
PHP 循环列出目录内容的函数代码
May 26 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
Oct 23 PHP
PHP中如何防止外部恶意提交调用ajax接口
Apr 11 PHP
thinkphp分页集成实例
Jul 24 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 02 PHP
PHP如何解决微信文章图片防盗链
Dec 09 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
如何将数据从文本导入到mysql
2006/10/09 PHP
php验证码生成器
2017/05/24 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
有趣的javascript数组定义方法
2010/09/10 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
JavaScript中Function详解
2015/02/27 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
使用Python下载Bing图片(代码)
2013/11/07 Python
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
python交易记录链的实现过程详解
2019/07/03 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
社区庆八一活动方案
2014/02/02 职场文书
企业宣传方案
2014/03/04 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
学习张林森心得体会
2014/09/10 职场文书
单位员工收入证明样本
2014/10/09 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript