当前位置:  开发笔记 > 编程语言 > 正文

在PHP中===做什么

如何解决《在PHP中===做什么》经验,为你挑选了3个好方法。

我已经用PHP编程了一段时间,但我仍然不理解==和===之间的区别.我知道=是作业.并且==等于.那么===的目的是什么?



1> Tom Ritter..:

它比较值和类型相等.

 if("45" === 45) //false
 if(45 === 45) //true
 if(0 === false)//false

它有一个模拟:!==比较类型和价值不平等

 if("45" !== 45) //true
 if(45 !== 45) //false
 if(0 !== false)//true

它对strpos这样的函数特别有用 - 它可以有效地返回0.

 strpos("hello world", "hello") //0 is the position of "hello"

 //now you try and test if "hello" is in the string...

 if(strpos("hello world", "hello")) 
 //evaluates to false, even though hello is in the string

 if(strpos("hello world", "hello") !== false) 
 //correctly evaluates to true: 0 is not value- and type-equal to false

这是一个很好的维基百科表,列出了其他语言,类似于三等号.



2> Thorbjørn He..:

确实===比较了值和类型,但是有一个案例尚未提及,那就是当你用==和===比较对象时.

给出以下代码:

class TestClass {
  public $value;

  public function __construct($value) {
    $this->value = $value;
  }
}

$a = new TestClass("a");
$b = new TestClass("a");

var_dump($a == $b);  // true
var_dump($a === $b); // false

在对象的情况下===比较引用,而不是类型和值(因为$ a和$ b都是相等的类型和值).



3> Chad Birch..:

PHP手册有几个非常好的表("与==的松散比较"和"与===的严格比较"),它们显示了在比较各种变量类型时将给出的结果==和===.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有