我有一个函数被调用一次用于启动,然后作为回调调用。我需要在回调中访问初始设置中定义的一些值。
我不确定'init'部分中的变量在关闭后到底发生了什么。显然,调用时,静态可用于回调部分。但是也有可用的对象?或者'init'部分返回后是否未设置?如果它丢失了,是否可以将对象分配给静态变量?例如$static = $object;
行之前的return;
?
function someFunction($type) {
if ($type == 'init') {
static $static;
$object = new stdClass();
$object->property = 'value';
return;
}
elseif ($type == 'callback') {
//Stuff that uses $object->property
return;
}
}
答案 0 :(得分:2)
你的班级功能:
class Foo
{
private $static;
public function __construct()
{
$object = new stdClass();
$object->property = 'value';
}
public function callback()
{
//Stuff that uses $object->property
return;
}
}
用法:
$array = array(); // completely useless array
$callback = new Foo();
// Use the callback object for a callback:
array_walk($array, array($callback, 'callback'));
正如您所知:构造函数不保存$object
,但如果需要,可以很容易地将其保存到Foo类的属性中。然后它可用于此类中的任何其他函数调用。