php 5.6 使用可变变量调用静态方法的报错的问题

有问题的php代码如下:

$worker->server::closeInvalidConnection($worker);

这段代码在 php 7.0 以上是不报错的,5.6 版本报错如下:

Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM) in /www/diary/gameServer/ws.php on line 43

请教大神,这是为何以及如何改动呢?谢谢!

阅读 2.6k
2 个回答

解决方案:

$workerServer = $worker->server;
$workerServer::closeInvalidConnection($worker);

另外试了一下,直接使用 $worker->server->closeInvalidConnection($worker); 也是可以的,5.6 到 8.x 都可以用,即使 closeInvalidConnection 是静态的


改成这样试试 ($worker->server)::closeInvalidConnection($worker);

参考官方的 迁移文档

Snipaste_2022-03-21_18-16-06.png

新手上路,请多包涵

call_user_func(array($worker->server,closeInvalidConnection),$worker);

推荐问题