Else (PHP)

Ceviz Viki sitesinden

Git ve: kullan, ara

Programlamada mantıksal yapılar tek koşul içermeyebilir. Her ifade kendine has koşullar ve mantıksal işleçlere sahip olabilir. Eğer gelen veri hiçbir koşula uymuyorsa else yapısına verilen yönerge kullanılır. Bu tip yönergeler mutlaka if yapısı ile başlamak zorundadır; ancak elseif yapısını içermek zorunda değildir. Ayrıca bakınız if (PHP). Bu tür bir yapının mantığı şöyle işler

if ( koşul_doğruysa )
{
   bunu_yap
}
else
{
   yanlışsa_bunu_yap
}

PHP, bu tür yapılarda ilk olarak if ile belirtilen koşulu kontrol eder. Eğer elseif belirtilmemişse else ile belirtilen yönerge uygulanır. PHP, else yapısından sonra geçerli mantıksal yapıyı durdurur ve daha fazla verilebilecek elseif ve benzeri yapıları yanılgı olarak sayar. Bu tür program ise şöyle işler:

if ( koşul_doğruysa )
{
   bunu_yap
}
elseif ( yanlışsa_buna_bak )
{
   doğruysa_bunu_yap
}
else
{
   yanlışsa_bunu_yap
}

PHP ilk olarak if yapısında belirtilen koşulu denetler, daha sonra ilk elseif yapısını denetler. Yine de hiçbirindeki ifade doğru true değilse else yapısı ile belirtilen ifade uygulanır.
Ayrıca bakınız elseif (PHP) ve boolean (PHP).

Örnekler

else yapısı tek başına çalışamaz; en azından bir if belirtilmesi gerekir. Bunun gibi else yapıları şöyle işler:

<?php
 
if (false)
{
echo "Doğrudur.";
}
else
{
echo "Yanlıştır.";
}
 
?>

Bu kod:

Yanlıştır 

çıktılar. Bunun nedini if ile belirtilen ifadenin yanlış (false) olmasıdır. PHP, if ile belirtilen koşulun yanlış (false) olduğunu görüp, else yapısının yönergesini uygular.

Bunlara rağmen, ifadelerde yanlış (false) olma durumu doğru (true) sayılabilir. Bunu === işleci yapabilir. Buna göre koşulun yanlış (false) olması halinde if yapısı çalışır ve else yapısına gelmez. Örneğin:

<?php
if ( (5<1) === false)
{
echo "5 küçüktür 1, yanlıştır.";
}
else
{
echo "5 küçüktür 1, doğrudur.";
}
 
?>

Bu programın çıktısı:

5 küçüktür 1, yanlıştır.

olur, bunun nedeni === işleci hem 5<1 ifadesine hem de false ifadesine bakar. 5<1 ifadesi boolean tipinden false değerindedir ve false ifadesi de boolean tipinden false değerindedir. Bu ikisi de aynı değerde olduğundan koşul true döner.

else yapıları tıpkı biçimde, elseif ile birlikte de kullanılabilirler. Buradaki işleyiş tamamen aynı olur. else yapısına kadar doğru true dönecek bir mantıksal ifade ile karşılaşılmazsa else çalışır. Örneğin:

<?php
$not1=98;
$not2=90;
$not3=95;
$not4=76;
$not5=81;
$ortalama=($not1+$not2+$not3+$not4+$not5)/5;//Ortalama alındı
 
if ($ortalama<=60)
{
echo "Ortalamanız <b>$ortalama</b> ve dersten kaldınız.";
}
elseif($ortalama<=80&&$ortalama>60)
{
echo "Ortalamanız <b>$ortalama</b> ve dersi geçtiniz.";
}
else
{
echo "Ortalamanız <b>$ortalama</b> ve dersi pek iyi ile geçtiniz.";
}
?>

Çıktı:

Ortalamanız 88 ve dersi pek iyi ile geçtiniz.

98, 90, 95, 76, 81 sayılarının ortalaması integer türünden 88 olarak döner. Buna göre if yapısı ile belirtilen ifade yanlış (false) döner; çünkü 88, 60'dan küçük veya eşit değildir. Tıpkı biçimde elseif yapısı ile belirtilen ifade de yanlış (false) döner; çünkü 88, 85^den küçük veya eşit değildir. Buna göre else yapısı çalışır.

Ayrıca Bakınız