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

定時(shí)器發(fā)送問(wèn)題

bijingjieshen

代碼如下:

1public static $db = null;
2 public static function onWorkerStart($worker)
3    {
4        //創(chuàng)建mysql實(shí)例
5        self::$db = new Workerman\MySQL\Connection('localhost', '3306', 'root', 'idriver', 'jdwuliu');
6    ...
7    }
8
9public static function onMessage($client_id, $data) {
10    $timer_id = Timer::add(3, function()use($client_id)
11    $gps_data = self::$db->select('gps_lon,gps_lat')->from("gps")->orderByDESC(array('u_id'))->limit(1)->query();
12    Gateway::sendToClient($client_id, json_encode($gps_data ));
13});

新建了一個(gè)mysql類(lèi)的靜態(tài)成員,保存數(shù)據(jù)庫(kù)實(shí)例。然后在onMessage有個(gè)定時(shí)器,每隔三秒鐘發(fā)送最新的gps給客戶(hù)端,以上是代碼邏輯。但是出現(xiàn)了報(bào)錯(cuò),報(bào)錯(cuò)信息如下

PHP Fatal error: Cannot access self:: when no class scope is active in 11

就是在 $gps_data = self::$db->select('gps_lon,gps_lat')->from("gps")->orderByDESC(array('u_id'))->limit(1)->query(); 這一行報(bào)錯(cuò) 不知道是什么原因

4364 2 0
2個(gè)回答

damao

哈哈 匿名函數(shù)里不能用self。因?yàn)槟涿瘮?shù)不屬于任何類(lèi)的方法。

public static function onMessage($client_id, $data) {
        $db = self::$db;
        $timer_id = Timer::add(3, function()use($client_id, $db)
        $gps_data = $db->select('gps_lon,gps_lat')->from("gps")->orderByDESC(array('u_id'))->limit(1)->query();
        Gateway::sendToClient($client_id, json_encode($gps_data ));
});

這樣應(yīng)該可行,你試下

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

可以的,非常感謝!

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