Вы можете сделать это так (не проверено).Идея состоит в том, чтобы вставить значение $ dir в источник функции.
function _iniloader_get_dirs($dir) {
$dirs = array_filter(scandir($dir),
create_function('$item', '$dir = \'' . $dir . '\';' .
'return (is_dir($dir."/".$item) && $item != "." && $item != "..");'));
return array_values($dirs);
}
Осторожно, если вы вызываете эту функцию много раз, потому что каждый раз, когда вызывается create_function
, она создает новую функцию впамять программы, которая остается навсегда, даже если она по существу такая же, как и у других функций, кроме переменной.Поэтому, если вы будете часто это называть, программа будет заполнена фиктивными функциями и не хватит памяти.