数组的值会自动改变

joker2015

我做了一个小游戏,客户端向服务器发送 '{"type":"update","boatId":"20001","y":"10"}' json数据,服务端把y 值存到数组$POSITION中,如果有新的用户进入,会先发送 '{"type":"init"}',服务端判断type为init则吧数组中的数据发送到客户端。那么问题是:每次有新的客户端打开,或者刷新页面,客户端收到的数组数据总是会变。打印$POSITION发现值每次都不一定固定。怎么回事儿?
下面是我的代码

$POSITION = array('boat1' =>0,'boat2' =>0,'boat3' =>0);     
class Event
{
   public static function onMessage($client_id, $message)
   {
    global $POSITION;

    // $message = '{"type":"update","boatId":"20001","y":"1"}'
        $message_data = json_decode($message, true);

        if(!$message_data)
        {
            return ;
        }   

        switch($message_data)
        {
            case 'init':
                Gateway::sendToAll(json_encode(array(
                    'type' => 'init',
                    'boat1' => $POSITION,
                    'boat2' => $POSITION,
                    'boat3' => $POSITION,
                )));
            return;
            //更新数据
            case 'update':
                $boatId = $message_data;
                $y = 10;
                if($boatId != null){
                    switch($boatId){
                        case '20001' : $POSITION += $y; break;
                        case '20002' : $POSITION += $y; break;
                        case '20003' : $POSITION += $y; break;
                    }
                }
                Gateway::sendToAll($message);
                return;
        }
   }
}
2955 0 0
0个回答

年代过于久远,无法发表回答
🔝