dz版本,discuz! F1.0
UCenter的通信测试的实质,是一个script脚本,调用地址是
/uc_server/admin.php?m=app&a=ping&inajax=1&url=https%3A%2F%2Fexample.com&ip=&appid=1&random=1230195151&sid=sdsfsddfd
直接访问就能看到报错
此处的代码是
echo $uc_note->$get['action']($get, $post);
而php5到php7有一个breaking change和类方法动态调用有关
http://php.net/manual/zh/migration70.incompatible.php
php5和php7对这段代码的解释顺序是不同的,所以导致了dz在php7下这里运行出错,修改也很简单,参照样例,这里修改为
echo $uc_note->{$get['action']}($get, $post);
就可以让php7用无歧义的方式解析成php5的结果,于是就能通信成功了