25 Ocak 2012 Çarşamba

PHP Değişkene 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";
}
.......
............
?>



Hiç yorum yok:

Yorum Gönder