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ı?
Nasıl bir arada kullanarak yaklaşık in_array
and array_map
a>, örneğin:
// array of possible parameters that can be passed by the client
$keys = array('username','password');
// this will store the names of the ones that are not present
$missing = array();
foreach($keys as $key) {
if(!in_array($key, $_POST)) {
$missing[] = $key;
}
}
$nullOffsets = array_map("is_null", $_POST);
echo 'Printing missing params:<br />';
print_r($missing);
echo 'Printing null existing params:<br />';
print_r($nullOffsets);
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