Проблема с $ POST,$ GET ... с двойным долларом


у меня есть этот код для проверки безопасности:

$tipos = array('$_POST','$_GET','$_COOKIE','$_SESSION','$_FILES');
foreach($tipos as $tipo){
    if ( isset($$tipo) && !empty($$tipo) ) {
        foreach ($$tipo as $key => $item) {
            $tipo[$key] = $this->security->xss_clean($item);
        }
    }
}

дает мне ошибку undefined переменной, я знаю, что я мог бы проверить его один за другим, но есть решение, как это?

 3
php
Author: J. Castro, 2018-09-27

1 answers

Во втором foreach вы должны использовать $$tipo[$key] вместо $tipo[$key] и Ваш массив типы не должны иметь $. Это должно выглядеть так:

$tipos = array('_POST','_GET','_COOKIE','_SESSION','_FILES');
foreach($tipos as $tipo){
    if ( isset($$tipo) && !empty($$tipo) ) {
        foreach ($$tipo as $key => $item) {
            $$tipo[$key] = $this->security->xss_clean($item);
        }
    }
}
 2
Author: varTob, 2018-09-27 16:54:28