我不确定这是否是我的代码中的Joomla或PHP问题。基本上我分别在页面加载和onclick
事件上调用了两个函数A和B.
在页面加载时,我将会话值设置为loadA。触发click事件后,我将会话值设置为clickB。
同时while循环内部函数正在运行,直到满足条件。在循环内部,它检查会话值。因此,如果在函数B内部更新了值,那么当while循环检查时,它还应该在函数A中更新吗?
但是它没有给出更新的价值。函数A仍然将loadA作为会话值放在while循环中,即使在click事件发生之后也是如此。如何解决这个问题?
class XXY(){
public function A()
{
$session = JFactory::getSession();
//set session value on page laod
$this->setSession('loadA');
while (x == y)
{
usleep(10000);
clearstatcache();
$comet = $session->get('runningComet');//giving the first set value, loadA
if($comet !== 'loadA'){
break;
}
}
}
public function B()
{
$session = JFactory::getSession();
$this->setSession('loadB');
$comet = $session->get( 'runningComet');//giving the updated value, loadB
}
public function setSession($currentComet){
$session = JFactory::getSession();
$session->set('runningComet', $currentComet);
}
}