1

我正在使用一些现有代码,特别是 JQuery 文件上传插件。有一个大类,其中有一些我正在尝试自定义的功能。问题是有几行代码对我来说毫无意义。

protected function get_file_object($file_name) {
    //whole bunch of code is here that generates an object file file size
    //and other information related to the image that was in the array.
    //removed the code to be concise, just know it returns an object.
        return $file;
}


protected function get_file_objects() {
        return array_values(
        array_filter(
        array_map(
            array($this, 'get_file_object'),
            scandir($this->options['upload_dir'])
        )));
}

好的,所以我不明白array_map 内部发生了什么。我知道数组映射需要一个回调,然后是一个数组作为参数。scandir 从目录中获取一个数组。

它的回调对我来说毫无意义。我在 php 文档中查看了 array() 函数的语法,它没有说明任何关于采用这样的两个参数的内容。显然第二个是一个函数,用引号引起来?我了解代码在做什么,而不是它是如何做的。

这是一些未记录的功能吗?

4

1 回答 1

4

的第一个参数array_map可调用的,其中第一个元素表示实例(或类名,如果方法是静态的),第二个元素表示方法名。所以array($this, 'get_file_object')get_file_object指当前实例的($this是当前实例)。

于 2013-06-19T14:05:31.427 回答