=== PHP ne yapar

8 Cevap php

Ben bir süre için PHP programlama olmuştur ama ben hala == ve === arasındaki farkı anlamıyorum. I = atama olduğunu biliyorum. Ve == olduğunu eşittir. Yani === amacı nedir?

8 Cevap

Bu değer ve hem de tip eşitlik karşılaştırır.

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

! == Türü ve değeri eşitsizliği karşılaştırır: Bu bir analog vardır

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

Bu strpos gibi işlevler için özellikle yararlıdır - 0 geçerli olarak dönebilirsiniz.

 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

Here's a good wikipedia table üçlü-eşitlerine bir benzetme olan diğer dilleri listeleme.

Bu === değeri ve tipi hem de karşılaştırır olduğu doğrudur, ancak henüz söz ve == ve === nesneleri karşılaştırmak zaman olduğunu henüz bir durum vardır.

Aşağıdaki kodu verildi:

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

Nesnelerin durumunda === (as $ a ve $ b eşit türü hem de değer olarak) yazın ve değer değil, referans karşılaştırır.

PHP kılavuzu çeşitli değişken tipleri karşılaştırırken verecek ne sonuç == ve === gösteriyor ki a couple of very nice tables ("== ile gevşek karşılaştırmalar" ve "=== ile sıkı karşılaştırmalar") vardır.

Veri türü yanı sıra değeri aynı olup olmadığı kontrol edecek

if ("21" == 21) // true
if ("21" === 21) // false

=== değeri and tipi karşılaştırır.

== Türlerini karşılaştırmak, === yok değil.

0 == false

doğru ama değerlendirir

0 === false

etmez

Bu gerçek bir eşitlik karşılaştırması bulunuyor.

"" == False örneği için true.

"" === False olan false

Gidecekseniz hiçbir automagic döküm / coersion oluyor, ama onun pek kayda değer onun kadar az çünkü Minimal, === == daha hızlıdır. (Tabii ki, ben sadece ... bahsettiniz)