Heim >Backend-Entwicklung >PHP-Tutorial >PHP的if判断,为什么要写两个条件

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

WBOY
WBOYOriginal
2016-06-06 20:44:472890Durchsuche

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没有设置,那么就不用再继续去判断

<code class="lang-php">$str==='string';
</code>

从而节省了执行的时间

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn