Class Confusion中的PHP数组函数

时间:2013-06-19 14:01:46

标签: php jquery

我正在使用一些现有代码,特别是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()函数的语法,并没有说出像这样的两个参数。显然第二个是函数,这是引号?我理解代码在做什么,而不是它是如何做的。

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

1 个答案:

答案 0 :(得分:4)

array_map的第一个参数是callable其中一个可调用的东西是一个数组,其中第一个元素表示实例(如果方法是静态则为classname),第二个方法名。因此array($this, 'get_file_object')引用当前实例的get_file_object$this是当前实例)。