Nasıl if / else steno kullanabilirim?

3 Cevap php

Ben örnekler from this page kullanarak denedim, ama ben çıkış herhangi bir sonuç olamaz.

Bu işler benim IF ifadesidir:

if (!empty($address['street2'])) echo $address['street2'].'<br />';

Ve bu benim hiçbiri çalışma steno kodudur

$test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />';

// Also tested this
(empty($address['street2'])) ? 'Yes <br />' : 'No <br />';

Ben yanlış ne yapıyorum?

UPDATE
After Brians tip, I discovered what went wrong. Echoing $test outputs the result. So then I tried the following:

echo (empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />';

Ve bu bir cazibe gibi çalıştı!

3 Cevap

The

(condition) ? /* value to return if condition is true */ 
            : /* value to return if condition is false */ ;

sözdizimi bir "kestirme eğer" değil operatörü (? koşullu operatörü denir) görseydiniz gibi aynı şekilde kod yürütmek olamaz çünkü:

if (condition) {
    /* condition is true, do something like echo */
}
else {
    /* condition is false, do something else */
}

$address boş değil zaman örnekte, echo deyimi yürütme. Sen koşullu operatörü ile bu aynı şekilde yapamaz. Ancak yapabilirsiniz Ne, koşullu operatör echo sonucudur:

echo empty($address['street2']) ? "Street2 is empty!" : $address['street2'];

ve bu "Sokak boş!" gösterecektir boşsa, aksi takdirde street2 adresini gösterecektir.

Üçlü operatör else / blok ve eğer sadece bir kısaltmadır. Sizin çalışma kod bu yüzden bu uygun değildir, bir başka durum yoktur.

Aşağıdaki örnek çalışacaktır:

echo empty($address['street2']) ? 'empty' : 'not empty';

Ben destekleri yanlış şekilde kullanılan düşünüyorum. Bu deneyin:

$test = (empty($address['street2']) ? 'Yes <br />' : 'No <br />');

Ben çalışmak gerektiğini düşünüyorum, siz de kullanabilirsiniz:

echo (empty($address['street2']) ? 'Yes <br />' : 'No <br />');