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 处理上百万条的数据库如何提高处理查询速度
Feb 08 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
php实现建立多层级目录的方法
Jul 19 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
Nov 08 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
Nov 10 PHP
php生成高清缩略图实例详解
Dec 07 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
PHP的mysqli_set_charset()函数讲解
Jan 23 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
Oct 15 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
PHP在引号前面添加反斜杠(PHP去除反斜杠)
2013/09/28 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
PDO::query讲解
2019/01/29 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
javascript 有趣而诡异的数组
2009/04/06 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
2015/12/03 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
jquery replace方法去空格
2017/05/08 jQuery
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
2015年幼儿园毕业感言
2014/02/12 职场文书
篝火晚会主持词
2014/03/25 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python