PHP var bir var belirledikten sonra o sayfa içinde kontrol etmek gerekiyor?

5 Cevap

Ben bir temel PHP sveyaum var, örneğiçinde aşağıdaki kod almak, en bunu yapmak içiçinde daha iyi bir yolu var, bir sayfada 10 kez kullanmak gerekiyveya diyelim?

  • Ben bir işlevi sarın ve sadece bu işlevi çağırarak tutmak ama veyaada öğe ayarlamak ve aa belli bir değere eşit ise daha sonra kontrol tutmak içiçinde iyi bir yoldur olabilir fark. Ilk defa bu öğrendikten sonra ilk defa gelen sonuç hatırlayarak yeriçindee bunu 10 farklı zamanlarda yapmanın başka bir yolu var mı?

Mantıklı umuyveyauz.

<?PHP
if (isset($_SESSION['auto_id']) && $_SESSION['auto_id'] == "1") {
    //do somethiçindeg
}

// do other code here that breaks these up

if (isset($_SESSION['auto_id']) && $_SESSION['auto_id'] == "1") {
    //do somethiçindeg else
}

// do other code here that breaks these up

if (isset($_SESSION['auto_id']) && $_SESSION['auto_id'] == "1") {
    //do somethiçindeg else
}

// do other code here that breaks these up

if (isset($_SESSION['auto_id']) && $_SESSION['auto_id'] == "1") {
    //do somethiçindeg else
}

...ect

>

5 Cevap

Bir kez bunu bir değişkene sonucu atamak olabilir ancak bu durumda, evet, var.

nasıl ...

<?PHP
$myCheck = (isset($_SESSION['auto_id']) && $_SESSION['auto_id'] == "1") ;

if($myCheck) {
    //do something
}

// do other code here that breaks these up

if($myCheck) {
    //do something else
}

// do other code here that breaks these up

if($myCheck) {
    //do something else
}

// do other code here that breaks these up

if($myCheck) {
    //do something else
}
etc.
?>

Sözdizimi kapalı olabilir - Ben herhangi bir PHP çalışma yaptık beri uzun bir süre ...

Tabii. Sadece başka bir değişkende boolean ifadenin değerini kaydedin.

<?php

  $auto_id_is_one = ($_SESSION['auto_id']) && $_SESSION['auto_id'] == "1");

  // ...

  if ($auto_id_is_one) {
     // do something
  }

  // ...

  if ($auto_id_is_one) {
     // do something else
  }

  // ...
?>

Muhtemelen olsa, o $auto_id_is_one daha anlamlı bir isim vermek istiyorum.

Belki daha iyi bir yaklaşım isset kez fonksiyon üstünde kullanın, ve orada bir varsayılan değere değişken ayarlamaktır. Sonra sadece fonksiyonun kalanında değerini kullanabilirsiniz.

Ben gerçek kod olmayabilir fark olsa örnekte, "0" olarak ayarlayın ki ...

Bu kod "bir şeyler yapmak" blok nedir bağlıdır, ve olup olmadığını $ _SESSION auto_id endeksi diğer kod değiştirilir. . Siz ilk vücuttaki değişken 1 var ve eğer karar verirse, artık belli olabilir kere o, emin olabilirsiniz - unless daha sonra tekrar kontrol etmek gerekir, tüm kodun geri kalanı ilk test (yani komut sonlanan bir başka hükmü var) başarılı ise sadece mevcut bir bağlamda idam, ve size (Değişiklikleri onu aramak ve hiçbir harici kodu) değerini değiştirmeyin emin olmasıdır .

Aklı kontrol etmek için daha iyi bir yol ortamı çoğu bunu sadece bir kez, daha sonra sadece çeşitli yerlerde belirli değerleri kontrol beklediğiniz gibi olduğundan emin olmak için olabilir. Eğer sürekli bu tekrar kontrol ediyoruz, ancak benzer mantık (auto_id = yani üzerinde ki bağımlı 1) iyi izole ve gruplandırılmış olmayan bir tasarım hatası, işaret olabilir.

Verdiğiniz örnekte, PHP sadece (Katı modu kapalı ise haber atmak olmaz) endeksi süper global $ _SESSION bulunan olmadığını bir E_NOTICE verecektir. Iyi uygulama değişken ayarlı olduğundan emin biliyorum ki gidip bir varsayılan değer ayarlamak olacaktır.

eski

<?php

$myVar = isset($_SESSION['auto_id']) ? $_SESSION['auto_id'] : FALSE;

if (false !== $myVar)
{
  //do something
}

//do something not realated to myVar being set

if (false !== $myVar)
{
  //do somethign else
}
?>