PHP静态变量和对象

时间:2013-06-19 17:07:00

标签: php object static

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

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

1 个答案:

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