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.2k
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);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题