我注意到,在PHP8.0中,优秀的PHP库pChart (我用来绘制饼图)不再起作用了。我使用的版本是2.1.4,自2014-01-19年间就没有更新过.
找出到底是怎么回事花了很长时间,因为我的错误日志只是抱怨试图从数组中读取属性,而没有发现真正的问题。
解决方案张贴在下面。
发布于 2022-11-13 15:42:34
PHP8中的一个变化是构造函数必须与:__construct()类似。不能简单地使用类的名称,比如Java。
pChart 2.1.4仍然使用类名作为构造函数。
在pPie.class.php中,构造函数是:
function pPie($Object, $pDataObject) {......},我不得不将它改为:
function __construct($Object, $pDataObject) {....}而且,类中的所有公共变量都是使用var关键字定义的,这是不推荐的。虽然此时不需要,但我将它们更改为public。
最后,我注意到一些公共变量的初始值与实际值不匹配。同样,也许不是必需的,但为了安全起见,我将它们设置为null。
例如:
最初,类pPie有以下变量:
var $pChartObject = array();
var $pDataObject = array();
var $LabelPos = "";我把它们改为:
public $pChartObject = null;
public $pDataObject = null;
public $LabelPos = "";您需要对pChart.附带的所有.class.php文件进行类似的更改(主要是__construct()更改)。
https://stackoverflow.com/questions/74422418
复制相似问题