0

我有一个函数,它被调用一次以进行启动,然后作为回调。我需要在回调中访问初始设置中定义的一些值。

我不确定“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;
    }
}
4

1 回答 1

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 类的属性中。然后它将可用于此类内的任何其他函数调用。

于 2013-06-21T18:17:30.533 回答