- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
function xss_clean($str, $is_image = FALSE)//
{
/*
* Is the string an array?
*
*/
if (is_array($str))
{
while (list($key) = each($str))
{
$str[$key] = $this->xss_clean($str[$key]);
}
}
return $str;
}
$str = $this->_remove_invisible_characters($str);
$str = preg_replace('|\&([a-z\_0-9]+)\=([a-z\_0-9]+)|i', $this->xss_hash()."\\1=\\2", $str);
и так далее, а конкретно приведеный тобой кусок — всего лишь коллбэк для очистки всех элементов массива.
Впрочем, не из кодигнайтера, потому что там ещё одна открывающая, одна закрывающая и куча кода перед закрывающей пропущены. Больше похоже на то, что кто-то скопировал код CI, не понимая сути.
Никто не знает про foreach
И если не специально для массивов, то для чего? Объекты им перебирать можно только с пятёрки.
PHP 4 introduced a foreach construct, much like Perl and some other languages. This simply gives an easy way to iterate over arrays...
...
As of PHP 5, it is possible to iterate objects too...
return substr($res, 0, 6);
я повторил эти же марки с таким выводом:
number_format (timer(), 8);
и выяснил, что на самом деле вариант с while гораздо быстрей и на много порядков.
Вариант с foreach: 0.29952500 сек
Вариант с while each: 0.00002400 сек
Вариант с foreach: -0.0396820000 сек
Вариант с while each: 0.0000690000 сек
P.s. У меня минус выскакивает в одном-двух случаях из десяти.
Вариант с foreach: 1.0866749287 сек
Вариант с while each: 0.0000641346 сек
А (переставлены проверки местами)
Вариант с while each: 1.0137848854 сек
Вариант с foreach: 0.8903930187 сек
Какой будет вывод? Кстати, в одном случае разница огромная, а в другом минимальная (по сравнению с).
А если несколько раз позапускать?
А если классически, отдельно один случай, отдельно другой? Причём, перед запуском делать выключение компа, чтоб обнулить все буферы.
В любом случае, я не буду утверждать однозначно, что быстрей один или другой способ.
Вариант с while each: 0.193212032318 сек
Вариант с while each: 0.216768980026 сек
Вариант с foreach: 0.827805042267 сек
замерено 20 раз по 100000 элементов
По теме: считаю, что foreach визуально лучше воспринимается чем whlie, list и each
ну-ну...