Sayfalar

Değişken İçin Öngörülen Bir Değer Atamak


Problem: Bir degisken icin "ongorulen" bir deger atamak istiyorsunuz.Fakat bu oyle bir sey olmali ki eger kullanici bir seyler girip yollamis ise kullanicinin degeri goz onune alinmali...

Cevap: Bu durumda "ternary operatoru" olarak isimlerndirilen ?: yazim seklini kullanabilirsiniz.(Tabi ki her zaman icin if else yapilari kullanilabilir ama bu operator ile hem kodun okunabilirligi artiyor hemde ozgun bir yazilim saglaniyor.)

durum ? dogru_ise_bunu_yap : yanlis_ise_bunu_yap 

<?php
/*
Eger kullanici ilk argumenti($dosyaadi) saglamis ise o kullanilacak degilse ongulen olarak STDIN (php://stdin) alinacak.(STDIN hakkinda daha fazla bilgiyi manualden alabilirsiniz.)
*/

$dosyaadi = isset ($arg[1]) ? $arg[1] : "php://stdin";

$dosyabaglantiac = @fopen ($dosyaadi, 'r') or die ("Dosya okumak icin acilamiyor");

while (!@feof ($dosyabaglantiac)) {
$satir = @fgets ($dosyabaglantiac, 1024);
print $satir;
}
@fclose ($dosyabaglantiac);
?>

Yukaridaki kod grubu icin anlamayanlara bir kez de bilinen klasik yontemle programi yazarak gosterelim.Ilk satirimizdaki kod icin bilinen if ve else yapilarini kullaniyorum.

<?php
if (isset ($arg[1])) {

$dosyaadi = $arg[1];

} else {
$dosyaadi = "php://stdin";
}
.......
............
?>