diamond_krnl
pure-php
альтернатива array_walk
тут написал альтернативу array_walk():
в чём же разница?
параметр передаётся через ссылку, то есть можно применять array_callback($_POST['c'], 'intval') (как пример против инекций можно применять addslashes для не любителей magic_qoutes), с array_walk такое не прошло бы, потому как в intval по значению передаются параметры.
еще пример примения был на особо тупом хостинге, эмуляция magic_quotes_gpc=off:
открытия конечно не сделал но не понятно почему array_walk работает имено так, либо похожей функции нет в пхп?
тут написал альтернативу array_walk():
PHP:
function array_callback(&$in, $fn)
{
if(is_array($in))
{
foreach($in as $k=>$v)
{
array_callback($in[$k], $fn);
}
}
else { $in = call_user_func($fn, $in); }
}
параметр передаётся через ссылку, то есть можно применять array_callback($_POST['c'], 'intval') (как пример против инекций можно применять addslashes для не любителей magic_qoutes), с array_walk такое не прошло бы, потому как в intval по значению передаются параметры.
еще пример примения был на особо тупом хостинге, эмуляция magic_quotes_gpc=off:
PHP:
if(get_magic_quotes_gpc())
{
array_callback($_GET, 'stripslashes');
array_callback($_POST, 'stripslashes');
array_callback($_COOKIE, 'stripslashes');
array_callback($_REQUEST, 'stripslashes');
$HTTP_GET_VARS = &$_GET;
$HTTP_POST_VARS = &$_POST;
$HTTP_COOKIE_VARS = &$_COOKIE;
}
ini_set('magic_quotes_gpc', 0);
открытия конечно не сделал но не понятно почему array_walk работает имено так, либо похожей функции нет в пхп?