PHP的if判断,为什么要写两个条件

php中文网
发布: 2016-06-06 20:44:47
原创
3582人浏览过

PHP的if判断,为什么要写两个条件,只写一个$str==='string'不是也一样吗?
是出于速度的考虑吗?
代码如下,

<code class="lang-php">    if(isset($str) && $str==='string'){
        ...
    }
</code>
登录后复制

回复内容:

PHP的if判断,为什么要写两个条件,只写一个$str==='string'不是也一样吗?
是出于速度的考虑吗?
代码如下,

<code class="lang-php">    if(isset($str) && $str==='string'){
        ...
    }
</code>
登录后复制

如果PHP处理一个未声明的变量就会触发一个Notice错误,问题不大并不会终止程序的运行
但,这是写一个严谨程序的坏习惯
特别是在使用FrameWork的时候,Notice错误会被catch,并终止程序的运行。

所以,

<code>// 判断一个变量是否存在
isset($attr)    // $attr等于null或许未声明,将返回false 

// 判断一个变量是否有值,请使用
empty($attr)    // $attr等于'0'或''或0或null,将返回true

// 坏习惯 让弱类型的PHP去处理,看似很省心的却可能带来意想不到的结果
if($attr) 
</code>
登录后复制

人们在追寻问题的答案的时候,却总是忘记追寻问题本身的意义。

  • 如果前面的代码已经明确 $str 变量的存在,何必加一句 isset($str)
  • 如果前面的代码不能表明 $str 变量的存在,为什么不加 isset($str)

$str 如果没 set 就会报 undifined的错误, 你用===和==又有什么区别。

我的理解是程序会先判断

<code class="lang-php">isset($str);
</code>
登录后复制

如果结果是$str没有设置,那么就不用再继续去判断

LobeHub
LobeHub

LobeChat brings you the best user experience of ChatGPT, OLLaMA, Gemini, Claude

LobeHub 201
查看详情 LobeHub

立即学习PHP免费学习笔记(深入)”;

<code class="lang-php">$str==='string';
</code>
登录后复制

从而节省了执行的时间

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号