PHP '==' vs 'denklem' arasındaki fark nedir?

5 Cevap php

Birincisi, ben StackOverflow ve google hem de ben bu soru için koyduk başlığı farklı varyasyonları için arama çalıştı. Ben bir çözüm bulamadım.

Ben php için oldukça yeni. Kullanarak eq ve == dize karşılaştırma arasındaki farkı bilmiyor yeterli Yeni!

Ben genellikle == PHP dizeleri karşılaştırmak için kullanabilirsiniz. Ben rahatım.

Ama dizeleri karşılaştırmak için eq kullanarak kod gördüm. Ve ben belli belirsiz birileri oh 'gibi bir gözlem yapma unutmayın! I == dizeleri karşılaştırmak için kullanılır. I eq 'kullanılmış olmalıdır

Ben sadece == basit dize karşılaştırmaları yapmak tamam kullanarak olmadığını bilmek istiyorum? Ben özel durumlar, harf duyarlı, substring veya dize karşılaştırma herhangi bir fantezi türü hakkında söz etmiyorum. Sadece apple apple ile aynı olup olmadığının kontrol edilmesi.

== yeterli mi? veya kullanmak eq. gerekir


EDIT:

benim hatam:!. (thanks my '-iyi araştırılmış değil' şüphe temizlenmesi için bir sürü Perl olmalı ben kod HTML içine gömülü ve PHP gömme farklı bir yol olduğunu düşündüm görünce karıştırdım üzgünüm..

5 Cevap

Benim yorum eşlik edecek: in eq operatörü Perl string eşitlik için testler ise [(4)] {için == testleri } eşitlik sadece.

PHP kez Perl betikleri bir koleksiyon olarak başlamış olsa da, ben sanmıyorum, bu operatörü kopyalanan ve this page kabul etmek gibi görünüyor.

PHP hiçbir eq operatörü bulunmaktadır. == ve === ancak var.

=== sıkı bir karşılaştırma operatörü ve türü dönüştürme yapmak olmayacaktır.

== türü dönüştürme yapacak (örneğin '' == 0 değerlendirir true).

Comparison Operators tam listesi için ve Type Juggling PHP türü dönüştürme kuralları için bkz. Ben bulabildiğim tek referans eq version_compare() bir argüman olarak oldu.

PHP sahip does't bir eq operator. Muhtemelen eq dizeleri gibi iki değişken karşılaştırmak Perl, düşünüyoruz.

PHP bir eşitlik operatörünü (==) ve gerçek bir eşitlik operatörü olan (===). Gerçek eşitlik operatörü (===) operatörün her iki tarafındaki ifadeler ikisi de eşittir, ve aynı tip olduğunu test edecek. Eşitlik operatörü (==) aynı tip her ifade zorlamak için çalışırsanız, ve sonra bunları karşılaştırmak olacaktır.

//this is true
'45' == 45

//this is false
'45' === 45

Bu türleri söz konusu olduğunda == kötü tahminler yapacak bazı durumlarda size aynı türde çekici ifadeler var biliyorum, o === kullanmak en iyisidir yapmak vardır.

== operatörü kontrolleri vardır, iki değişken, değişmezleri ya da bu iki program varlığın bir kombinasyonu arasında mükemmel bir maç ... ama güvenli yazın değilse!

Dizeleri karşılaştırmak için kullanırsanız, mükemmel bir eşleşme bulmak için normal bir ifade ile bir dize karşılaştırarak!

Ama PHP dizeleri karşılaştırmak için en güçlü yolu bir yeri vardır, sadece örneğin .... gerçekleştirmek için çalışıyoruz ne bilmeniz gerekir: similar_text(), strcasecmp(), {[ (2)]}, vb Veya kendi deseni ile ereg(), eregi() işlevlerinden birini çağırarak düzenli ifadeler kullanarak dizeleri karşılaştırabilirsiniz!

eq PHP bana haber olabilir ama sıkı karşılaştırma operatörü var olacaktır

$a === $b

Ayrıntılar için the manual edin.