国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

請(qǐng)問web-msg-sender 無(wú)法引用自定義的array嗎?

mdys

// 全局?jǐn)?shù)組保存uid在線數(shù)據(jù)

$uidConnectionMap = array();
$live_agent_arr=array(); //自定義了個(gè)函數(shù),在 $socket->on( 'login', function ( $uid )use( $socket ) 引用是null的,不解

echo "is_arraya-".is_array($live_agent_arr)." is_nulla-".is_null($live_agent_arr)." is_stringa-".is_string($live_agent_arr)."\n\n";

// PHPSocketIO服務(wù)
$sender_io = new SocketIO( 2120 );
// 客戶端發(fā)起連接事件時(shí),設(shè)置連接socket的各種事件回調(diào)
$sender_io->on( 'connection', function ( $socket ) {
    // 當(dāng)客戶端發(fā)來(lái)登錄事件時(shí)觸發(fā)

    $socket->on( 'login', function ( $uid )use( $socket ) {
        global $uidConnectionMap,$last_online_count,$last_online_page_count,$live_agent_arr;
        // 已經(jīng)登錄過(guò)了

        if ( isset( $socket->uid ) ) {
            return;
        }
        // 更新對(duì)應(yīng)uid的在線數(shù)據(jù)
        $uid = ( string )$uid;
        if ( !isset( $uidConnectionMap ) ) {
            $uidConnectionMap = 0;
        }

        echo "is_arrayb-".is_array($uidConnectionMap)." is_nullb-".is_null($uidConnectionMap)." is_stringb-".is_string($uidConnectionMap)."\n\n"; //執(zhí)行結(jié)果 is_array($uidConnectionMap) 可以 true
        echo "is_array-".is_array($live_agent_arr)." is_null-".is_null($live_agent_arr)." is_string-".is_string($live_agent_arr)."\n\n";  //執(zhí)行結(jié)果 is_array($live_agent_arr) 是flase, is_null($live_agent_arr)=true

        // 這個(gè)uid有++$uidConnectionMap個(gè)socket連接
        ++$uidConnectionMap;

        if(isset($live_agent_arr)){
            array_push( $live_agent_arr, array( "exten" => $uid, "channel" => "" ) );
        }
        // 將這個(gè)連接加入到uid分組,方便針對(duì)uid推送數(shù)據(jù)
        $socket->join( $uid );
        $socket->uid = $uid;

    } );

} );

執(zhí)行結(jié)果如下:
圖片
?
我十分不理解的是,為何 我自己定義的$live_agent_arr 在 function ($uid) use($socket) 是 null, 而例子里自帶的$uidConntionMap可以正常使用? 我該怎么樣使用自己定義的array?請(qǐng)各位大神不吝賜教,小白跪謝!!!
?

2617 2 0
2個(gè)回答

walkor 打賞

workerman本身并沒有改變php的任何特性或者語(yǔ)法。
?如果$uidConnectionMap 和?$live_agent_arr 如果是在函數(shù)里定義的,根據(jù)php的機(jī)制,2個(gè)默認(rèn)不是全局?jǐn)?shù)組。
你可以用 global關(guān)鍵字來(lái)聲明他們。
?
global?$uidConnectionMap = array();
global $live_agent_arr = array();
?
?
?

  • 暫無(wú)評(píng)論
mdys

感謝大神回復(fù)!
額 ,我最終還是沒搞定,??global $live_agent_arr = array(); 我用這種寫法獲取全局得到的是null ? ,? 用例子里自帶的?$uidConnectionMap 是可以獲取到值的,沒搞清楚是為什么, 就是很不理解為何我自己寫的 $live_agent_arr 獲取不到. 最終改用了? http://doc.workerman.net/components/global-data-server.html

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??