0

我有一个问题,我并不清楚闭包在 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; 
}); 
?>

和“曼达鲁勇”相呼应。我期待它会从 Xsample::$address 返回一个数组,但它没有。有人可以向我解释一下吗?

4

1 回答 1

1

call_user_func_array将第二个参数的元素作为参数传递给被调用的函数。因此,如果您的函数有另一个参数,它将起作用。

Xsample::sub(function ($address, $address2) {
echo $address; 
echo $address2; 
}); 
于 2013-07-18T13:10:17.203 回答