Bunlardan biri PHP null olup olmadığını görmek için birçok değişkeni kontrol etmek için daha iyi bir çözüm var mı?

4 Cevap php

Pek çok değişken $_REQUEST[] veya $_POST[] tarafından alınan ve ben değer fonksiyonu {[ile (null olduğu durumda onları kontrol etmek zorunda olan bir php dosya üzerinde 3)]}, oldukça zahmetlidir. Daha iyi bir çözüm var mı?

4 Cevap

Bir dizideki değişkenleri vardı eğer isset() işlevini çağırarak içlerinden döngü olabilir (sadece istek veya sonrası diziler kullanmayın). Geçerli kodu ne bağlı olarak, bu 'iyi' olabilir.

Bir nesne dizi sarma deneyebilirsiniz.

class ArrayWrapper {
    private $data;
    public function __get($var) {
    if (!isset($this->data[$var])) {
        return false;
    }
    else {
        return $this->data[$var];
    }
    }
    public function __construct($a) {
    $this->data = $a;
    }
}

$a = array('test' => 1);

$aw = new ArrayWrapper($a);

if ($aw->test != false) {
    echo "test: ".$aw->test;
}
if ($aw->foo != false) {
    echo "foo: ".$aw->foo;
}

Kullanıcı girişi kontrol zahmetli, ama gerekli bir kötülük.

Şahsen ben $_GET ya da işleme için kendi değişkenler için gereken içeriği kopyalayarak daha $_POST kullanarak diğer tercih.

Benim. Php dosyasının üstünde, ben $_GET veya $_POST kopyalamak istediğiniz değerlerin isimlerini içeren bir dizi tutmak

Bu kadar ekler:

// the following array needs to be modified when you change your input specs
$inputAllowed = array("name", "title", "company");
$input = array();
foreach($inputAllowed as $key)
    if( array_key_exists( $key, $_POST ) )
        $input[$key] = $_POST[$key];
    else
        $input[$key] = "";

Bir "is_null" eklemek için kolay durumunda şey boş olmamalıdır için taşıma ile orada kontrol. Yoksa önce döngü bitirsin ve sonra $ giriş üzerinde döngü olabilir