如何在像Javascript上使用Closure作为匿名函数?

时间:2013-07-18 13:03:18

标签: php class static closures

我有一个问题,我不清楚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 :: $地址返回一个数组,但事实并非如此。有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:1)

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

Xsample::sub(function ($address, $address2) {
echo $address; 
echo $address2; 
});