Ve | | | operatörleri arasındaki fark nedir?

4 Cevap php

| ve || - PHP bu iki operatörler arasındaki fark nedir?

4 Cevap

| bir bitwise veya || bir boolean ya da.

Meaning

| ikili operatör, bu binary veya olacak LeftHand'e ve righthand değerlerin hem de bit.

|| bir boolean operatörü bu 'gerçek' karşılaştığında, short circuit (sıfır olmayan herhangi bir değer, bu boş olmayan diziler içerir) olacaktır.

Examples

print_r(1 | 2)  // 3
print_r(1 || 2) // 1

Fonksiyonları ile kullanıldığında:

function numberOf($val) {
    echo "$val, ";
    return $val;
}

echo numberOf(1) | numberOf(2);  // Will print 1, 2, 3
echo numberOf(1) || numberOf(2); // Will print 1, 1

| Bir değişkenin bit üzerinde çalışır: 2 | 4 = 6

| | Bir değişkenin Boole değeri çalışır: 2 | | 4 = DOĞRU

Sadece ve benzeri ve && operatör, çift Operatör bir "kısa devre" operatörüdür.

Örneğin:

if(condition1 || condition2 || condition3) If condition1 is true, condition 2 and 3 will NOT be checked.

if(condition1 | condition2 | condition3) This will check conditions 2 and 3, even if 1 is already true. As your conditions can be quite expensive functions, you can get a good

bunları kullanarak performans artışı.

There is one big caveat, NullReferences or similar problems. Örneğin:

if(class != null && class.someVar < 20) If class is null, the if-statement will stop after "class != null" is false. If you only use &, it will try to check class.someVar and you get a

güzel NullReferenceException. Eğer kötü bir şey tetikleyebilir olası olduğu gibi Or-Operatörü ile bu, bir tuzak o kadar olmayabilir

ancak akılda tutulması gereken bir şey var.

Hiç kimse tek ve kullanır veya | operatörleri olsa da, her koşul olmak HAS bir fonksiyonu olan bir tasarıma sahip olmadıkça

idam. Bir tasarım koku gibi geliyor, ama bazen (nadiren) o şeyler yapmak için temiz bir yoldur. & operatörü "Bu 3 fonksiyonları çalıştırmak yok,

ve bunlardan biri false döndürürse, else bloğu çalıştırmak "iken | yok" yok return false eğer sadece "else bloğu çalıştırmak - yararlı olabilir,

ama dediğim gibi, sık sık bir tasarım koku.