Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

PHP - if cümleleri içinde değişkenlere değer atamak

Selam millet...

Geçen gün bi yazıda if içerisinde değişken set etmenin yapılmaması gerektiğini okudum. Açıkçası ben şunu çok sık kullanırım:

if(isset($_POST) && $post = $_POST) {
  print_r($post)
}


Ne sıkıntı var bunda anlayamadım birileri açıklayabilir mi bana acaba?
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • eburhan adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    8 cevap - 0 soru
    Dikkatsiz olunduğu takdirde

    if( $var = 'value' )


    ile

    if( $var == 'value' )


    kullanımı karıştırılabilir ve php burada hata da vermez. Sanırım bundan kaçınmak için kullanılmaması önerilmiştir.

Cevaplar

  • 1
    sac adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    2 cevap - 0 soru
    Çünkü önemli olan kısa kod yazmak değil, temiz, standart kod yazmak, kurallara uymak. if demek içinde birşeyleri test ediyosun demek if'in içinde değişken assign etmenin hiçbir mantığı yok...

    Kafa karıştırmaya gerek yok bir başkası baksa tek eşittir mi var çift eşittir mi var ilk bakışta anlamayabilir.
  • -1
    col-shrapnel adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    1 cevap - 1 soru
    Walla bence if'in vs.nin içinde değişkenlere değer atamak o kadar da sorun değil:

    if ($id = $_GET['id']) {
    


    ya da

    while($row = mysql_fetch_assoc($res)) {
    


    en çok kullanılan örnekler.

    Ha tabii okurken atlama ihtimali var ya da yazarken = ile == karışabilir eyvallah ama ona da dikkat edecen.

    Bence asıl yanlış olan çift eşittir ile tek eşittir'i aynı if'in içinde kullanmak, kodu okumayı acayip zorlaştırıyor.

    Şöyle olsa daha iyi olur bence:

    if(isset($_POST)) {
      $post = $_POST;
      print_r($post);
    }
    
  • 2
    fka adlı üyenin fotoğrafı
    8 yıl önce yazılmış
    70 cevap - 0 soru
    PHP sitesinde şöyle der: koşullarda atama yapmak istiyorsan şu şekilde kullan

    if (isset($_POST) && false !== ($post = $_POST))
    {
    print_r ($post);
    }
    


    while kullanımı da şu şekilde

    while (false !== ($row = mysql_fetch_assoc($query)))
    {
    print_r($row);
    }
    
    • fka adlı üyenin fotoğrafı fka
      Çünkü atama işlemi her zaman TRUE döneceğinden koşul işlemine sokman anlamsız olur diyor PHP.
      8 yıl önce yazılmış
    • yaramazca adlı üyenin fotoğrafı yaramazca
      atama işlemi TRUE mi döner?
      atanan dener FALSE veya NULL ise FALSE donmez mi?

      Atama işlemi hep TRUE dönecekse koşulun bir anlamı kalmaz tabi.
      8 yıl önce yazılmış
  • yolat adlı üyenin fotoğrafı
    5 yıl önce yazılmış
    3 cevap - 0 soru
    Soru sorulalı baya bir zaman geçmiş ama arayıpta yeni görenler için bu sorunun alternatif cevabı şöyledir...
    $post = isset($_POST) ? $_POST ? print_r($_POST) : false : false;
    


    Kolay gelsin :)