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

发布时间 - 2026-01-11 02:43:56    点击率:

本文实例讲述了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基本语法入门教程》、《php字符串(string)用法总结》及《PHP数组(Array)操作技巧大全》

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # 弱类型  # 类型判断  # PHP数组内存利用率低和弱类型详细解读  # PHP弱类型的安全问题详细总结  # 浅谈php中变量的数据类型判断函数  # php数据类型判断函数有哪些  # php 上传文件类型判断函数(避免上传漏洞 )  # PHP 文件类型判断代码  # 常用的php对象类型判断  # php判断变量类型常用方法  # PHP 判断变量类型实现代码  # php 判断服务器操作系统的类型  # 会先  # 的是  # 双引号  # 相关内容  # 才是  # 是这样  # 感兴趣  # 恒等  # 给大家  # 要用  # 这种情况  # 会把  # 很明显  # 这是因为  # 转换成  # 更多关于  # 转换为  # 都为  # 则为  # 所述 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用虚拟主机快速搭建网站?详细步骤解析  如何在服务器上配置二级域名建站?  香港服务器租用费用高吗?如何避免常见误区?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  如何快速上传自定义模板至建站之星?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  EditPlus中的正则表达式 实战(1)  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Laravel如何与Inertia.js和Vue/React构建现代单页应用  如何用已有域名快速搭建网站?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  教学论文网站制作软件有哪些,写论文用什么软件 ?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  高端云建站费用究竟需要多少预算?  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Laravel如何使用Blade模板引擎?(完整语法和示例)  如何用wdcp快速搭建高效网站?  Android Socket接口实现即时通讯实例代码  Laravel如何配置Horizon来管理队列?(安装和使用)  香港网站服务器数量如何影响SEO优化效果?  Laravel怎么在Blade中安全地输出原始HTML内容  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  中山网站制作网页,中山新生登记系统登记流程?  Linux网络带宽限制_tc配置实践解析【教程】  Laravel Fortify是什么,和Jetstream有什么关系  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  Android利用动画实现背景逐渐变暗  如何在IIS中配置站点IP、端口及主机头?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  独立制作一个网站多少钱,建立网站需要花多少钱?  iOS中将个别页面强制横屏其他页面竖屏  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  如何快速搭建支持数据库操作的智能建站平台?  Android中AutoCompleteTextView自动提示  如何用美橙互联一键搭建多站合一网站?  开心动漫网站制作软件下载,十分开心动画为何停播?  Linux系统命令中screen命令详解  Python数据仓库与ETL构建实战_Airflow调度流程详解  ,交易猫的商品怎么发布到网站上去?  香港服务器租用每月最低只需15元?  简历没回改:利用AI润色让你的文字更专业  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤