我在onConnect方法内实例化了一个对象并保存到session了,然后再onMessage方法里面修改了这个对象的一个属性,但是下次再访问的时候这个属性依然没有被修改的,也就是保存不了onMessage方法所做出的改动。比如:
function onConnect($client_id){
$an=new MyAnimal();
$an->name="狗熊";
$_SESSION['animal']=$an;
}
function onMessage($message){
$an=$_SESSION['animal'];
$an->name="熊猫";
}
function onClose(){
echo $_SESSION['animal']->name;//还是输出“狗熊”,在onMessage方法修改的内容并没有被保存。
}
有看到说gateway只是复制了一份传递给Business,所以原来的类已经被释放了。那像我这种需求应该怎么实现比较适合呢,感谢。
........你是怎么学的PHP?
变量的赋值是传值不是传址
PHP的对象不是传址的吗?用PHP比较少。
而且……按照你说的,用$_SESSION['animal']->name="xxx";也没有保存,下次请求依然是之前的值。