我无法弄清楚第一个返回声明,任何人都可以帮忙解释它是如何工作的吗?
array_map
接受第一个arg的函数,但这里是一个数组。以及array(&$this, '_trimData')
如何运作?谢谢你解释。
private function _trimData($mParam)
{
if (is_array($mParam))
{
return array_map(array(&$this, '_trimData'), $mParam);
}
$mParam = trim($mParam);
return $mParam;
}
答案 0 :(得分:3)
这是一个递归函数。如果传递给它的参数是一个数组,_trimData
会调用它自己。
array(&$this, '_trimData')
是当前对象方法_trimData
的{{3}}。
整个方法实际上可以替换为:
private function _trimData($mParam)
{
array_walk_recursive($mParam, 'trim');
return $mParam;
}
答案 1 :(得分:1)
回调:$this->_trimData()
(对象_trimData
的{{1}})
答案 2 :(得分:0)
关于<lv:RadListView xmlns:lv="nativescript-ui-listview" loaded="listLoaded">
<lv:RadListView.itemTemplate>
<StackLayout loaded="itemLoaded">
...
</StackLayout>
</lv:RadListView.itemTemplate>
</lv:RadListView>
如何充当回调的解释,尽管看起来像数组:
PHP函数的名称以字符串的形式传递...实例化对象的方法以数组的形式传递,该数组包含索引为0的对象和索引为1的方法名。PHP: Callbacks/Callables
因此,在这种情况下,对象是function listLoaded(args) {
var list = args.object;
list.androidListView.setClipToPadding(false);
list.androidListView.setClipChildren(false);
}
function itemLoaded(args) {
var item = args.object;
item.nativeView.setOutlineProvider(android.view.ViewOutlineProvider.BOUNDS);
item.nativeView.setClipToOutline(false);
}
exports.listLoaded = listLoaded;
exports.itemloaded = itemLoaded;
,方法是array(&$this, '_trimData')
,将其放入数组是PHP允许您将其作为回调传递到&$this
的一种方式