我有一个问题,我不清楚闭包在OOP上使用了什么,但我做了这样的事情:
<?php /** * */
class Xsample {
public static $name;
public static $address = array("Mandaluyong", "City");
public static function setName ($name) {
self::$name = $name;
}
public static function getName() {
echo self::$name;
}
public static function sub ($func) {
return call_user_func_array($func, self::$address);
}
}
Xsample::setName("Eric");
Xsample::sub(function ($address) {
echo $address;
});
?>
它呼应了"Mandaluyong"。我预计它会从Xsample::$address返回一个数组,但它没有。有人能给我解释一下吗?
call_user_func_array
将第二个参数的元素作为参数传递给被调用的函数。因此,如果你的函数有另一个参数,它就会起作用。
Xsample::sub(function ($address, $address2) {
echo $address;
echo $address2;
});