在PHP中需要C ++构造函数/析构函数

时间:2012-01-10 08:08:13

标签: php locking

在我的函数中有许多退出点,我想在输入时锁定表,但是在退出此函数时自动解锁所有表,无论是异常,返回等。

在C ++中,我将在类构造函数中创建锁定表并在析构函数中解锁表,并简单地在堆栈上的函数入口上创建类,该函数将在函数出口处自动展开(破坏)。

所以在C ++中:

struct locktables{

locktables()
{
//lock them all
}
~locktables()
{
//unlock them all
}

};


void process_function()
{
locktables _l_dddsdsdsa;

//logic goes here


}

我知道这些类是作为引用而不是在堆栈中创建的。

如何在PHP中执行此操作?

1 个答案:

答案 0 :(得分:1)

为什么不封装函数调用?

function doFooWithLock()
{
    lock();
    try
    {
        $return = doFoo();
    }
    catch(Exception $e)
    {
       // no idea for what you need to catch.
       unlock();
       throw $e; # re-throw
    }
    unlock();
    return $return;
}

function doFoo()
{
    //...
}