使PHP闭包函数对PHP 5.2安全 [英] Making a PHP closure function safe for PHP 5.2

查看:105
本文介绍了使PHP闭包函数对PHP 5.2安全的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下函数在PHP> 5.3中工作,但在旧版本中出错。我如何修改它以使它安全?

The following function works in PHP > 5.3 but errors out in older versions. How can I modify this to make it 5.2 safe?

function _iniloader_get_dirs($dir) {
        $dirs = array_filter(scandir($dir), function ($item) use ($dir) {
            return (is_dir($dir.'/'.$item) && $item != "." && $item != "..");
        });
        // Use array_values to reset the array keys:
        return array_values($dirs);
}

5.2错误:
$ b

5.2 error:


解析错误:语法错误,意外的T_FUNCTION ... on
第2行

Parse error: syntax error, unexpected T_FUNCTION ... on line 2


推荐答案

你可以很容易地做闭合,但你会失去一些优雅:

You can easily do it w/o the closure, but you will lose some elegance:

function _iniloader_get_dirs($dir) {
    $dirs = array();
    $entries = scandir($dir);
    foreach($entries as $item) {
        if($item === '.' || $item === '..') continue;
        if(!is_dir($dir.'/'.$item)) continue;
        $dirs[] = $item;
    }
    return $dirs;
}

这篇关于使PHP闭包函数对PHP 5.2安全的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆