解决jpgraph在php7.0版本下时,无法显示例子图表的问题
2017-07-02 18:08
471 查看
解决gpgraph4.02在php7.0显示空白框问题
Gpgraph类库强大的绘制图表的功能深受广大phper的喜爱,目前官方最新的版本是
jpgraph-4.0.2 ,适用于php5.0及7.0以上的版本。当我们安装gpgraph施展拳脚的时候,发现打开gpgraph的例子
的显示出来的就只是一个白色的方块,没有显示图表也没有任何提示信息。比如这样:
看了一下广官方网站也,也没有给出具体的方法。那我们只能自己摸索解决办法了。
其实方法很简单,几步就可以解决。
解决方案:
第一步:打开php的错误日志,我用的是wamp(其他开发环境也是大同小异),直
接单击任务栏图标=>php=>错误日志。直接用记事本打开, 打开后是这样子(建议打开
后清空错误日志的记录,以便于我们更好地定位错误)。
再次运行gpgraph的例子,然后打开错误日志,在这里我们就可以看到错误的具体
信息了。我这里提示的是 Methods with the same name as their class will not be con-
structors in a future version of PHP; LinePlot has a deprecated constructor in D:\prfec
\wamp64\www\jpgraph-4.0.2\src\jpgraph_line.php on line 24。大概意思说现阶段的php
版本不支持与类同名的构造函数,然后接着告诉我们错误发生的位置。
第二步:根据错误日志提供的地址,打开相应的文件,找到具体的那一行。我这里
是D:\prefect\wamp64\www\jpgraph-4.0.2\src\jpgraph_line.php on line 24。
接着定位到构造函数这一行:
我们只需要把function LinePlot改为function __construct即可。接下来再次运行gp
grap的example,就可以正常显示了(假若还是不能,还是按照上述的方法,定位错误,
修改函数名就可以了,因为不止一个类这样命名构造函数)正常的样子应该是这样:
原因剖析:
在php5之前的版本中为了兼容性,构造函数的命名可以是与类的名字相同,比如:
类名是“class LinePlot”,那么它的构造函数也就是“function LinePlot”,相信学
过php面对对象编程的同学会有一定的了解。到了php7.0的版本,为了让php更加的规范,
减少歧义就放弃了这种写法,统一以“function __construct”来创建构造函数。在本次的
教程中,可能是gpgraph的作者,疏忽了php7.0的新特性,继续沿用以前的方法来出创建
构造函数,才出现这样的bug。
通过这次案例也提醒我们,IT知识更新速度十分快速,我们一定要不断为自己充电,
才能让自己的作品适应技术的发展。
相关文章推荐
- 解决jpgraph在php7.0版本下时,无法显示例子图表的问题
- php的webservice的wsdl的XML无法显示问题的解决方法
- 解决Android 7.0中 Android Device Monitor(DDMS)的 File Explorer不显示目录树及data目录无法打开的问题
- 解决Fedora Core 3及后续版本中Apache无法加载libphp4.so模块的问题
- php的webservice的wsdl的XML无法显示问题的解决方法
- iis6.0 配置PHP 5.38(解决老PHP版本无法启用CURL问题)
- vs2008与IIS 7.0使用在vista上时出现的问题及解决方法(Internet Explorer 无法显示该页面)(VS2008: IE Cannot Display Web Page)
- 解决不同版本的eclipse或sdk所导致的android layout xml无法显示的问题
- Qt5 QML程序Release版本发布程序无法显示的问题解决过程。
- intellij IDE build出错,无法显示图片,找不到tomcat server,java编译版本过低,异常推出后无法启动项目等常见问题解决
- windows7下php5.4成功安装imageMagick,及解决php imagick常见错误问题。(phpinfo中显示不出来是因为:1.imagick软件本身、php本身、php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个文件放到/php/目录下面)
- Qt5 QML程序Release版本发布程序无法显示的问题解决过程。
- linux显示git commit id,同时解决insmod模块时版本不一致导致无法加载问题
- 打开网站php出现乱码问题的解决办法以及无法显示验证码
- [chrome - dev]解决版本27插件无法正常显示的问题
- 奋战5个小时解决诡异的PHP--“图像XX因其本身有错无法显示”的问题
- NET中"无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。"问题的解决
- 解决ani格式光标特效在2003系统无法显示的问题
- 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
- PHP 5.X 连接MSSQL Server 2000/7.0的问题及解决办法