我有一个问题,我不清楚Closures在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 :: $地址返回一个数组,但事实并非如此。有人可以向我解释一下吗?
答案 0 :(得分:1)
call_user_func_array
将第二个参数的元素作为参数传递给被调用的函数。因此,如果您的函数有另一个参数,它将起作用。
Xsample::sub(function ($address, $address2) {
echo $address;
echo $address2;
});