解决jpgraph在php7.0版本下时,无法显示例子图表的问题
解决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版本下时,无法显示例子图表的问题的更多相关文章
- Redis 3.0版本启动时出现警告的解决办法
原文:http://m.blog.csdn.net/article/details?id=50864933 Redis 3.0.7版本启动时出现警告的解决办法 发表于2016/3/12 12:52:4 ...
- php7.0版本不再以类名命名构造函数
<?php class Car { var $color = "add"; function Car($color="green") { $this-&g ...
- 关于windows下基于php7.0.2下编写的第一个扩展
网上的教程是比较多的,但是基于php7+windows的教程非常之少,通过几天的摸索及参考很多资料,终于发现如下可以运行. php7要求使用vc2015,同时安装sdk,我使用的是8.1的window ...
- 在win7中解决Visual C++ 6.0打开文件时出现停止工作问题
在使用Visual C++ 6.0打开文件时可能会出现下面的情况 这可能是Vc6.0和win7兼容性问题. 方法: 下载filetool即可 链接:https://pan.baidu.com/s/1X ...
- 解决关于VC++ 6.0打开文件时,程序停止的问题
不少boys和girls安装VC++ 6.0英文版后,开始学习C++语言,但是使用软件的过程中,点击“打开”时,就会出现程序进程错误,崩溃的事儿,很是郁闷.最后直接一个对话框如下: 并且vc6.0直接 ...
- phpstudy 2016 切换Nginx+php7.0版本所需运行库 vc14 + 安装redis拓展
去微软官方下载vc14的运行库 链接:https://www.microsoft.com/en-us/download/details.aspx?id=48145 32位运行库 安装成功 切换版本成功 ...
- mysql8.0版本下命令行mysqld –skip-grant-tables 失效,无法登陆的问题
1.管理员权限登陆cmd,不会使用管理员登陆的请搜索cmd,搜索结果右键. 2.命令行输入:net stop mysql;然后提示.服务停止中 --> 服务已停止,如出现其他错误请百度. 这只是 ...
- mysql在8.0版本下修改密码的命令
ubuntu20.04上边部署了一个新的mysql服务,默认没密码,想要修改密码. 使用如下手段 第一种:ALTER USER 'root'@'localhost' IDENTIFIED BY '密码 ...
- ubantu php7.0版本降级到php5.6
http://askubuntu.com/questions/756879/cant-install-php5-on-ubuntu-16-04
随机推荐
- SQL-20 查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth
题目描述 查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growthCREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`s ...
- L1-056 猜数字
一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢.本题就要求你找出其中的赢家. 输入格式: 输入在第一行给出一个正整数N(≤104).随后 N 行,每行给出一个玩 ...
- FindResource () RT_HTML 为什么总是出错呢 ?
#include <windows.h> #include <commdlg.h> #include <ole2.h> BOOL GetHtmlResource(L ...
- normalization 阅读笔记
https://zhuanlan.zhihu.com/p/33173246 阅读笔记 1. normalization whiting - PCA 2. Internal Covariate Shif ...
- leetcode56:合并区间
给出一个区间的集合,请合并所有重叠的区间.(解题思想来源于:https://blog.csdn.net/qq_34364995/article/details/80788049 ) 示例 1: 输入: ...
- 界面设计-Edit控件的Style设置
以下文字转贴ChinaCock QQ 223717588群: 1. 首先在Form上放一个TEdit类型控件Edit1,最终的效果如下图: 2.选中控件Edit1,点击鼠标右键,在弹出菜单中选择“Ed ...
- 使用grafana cli重置grafana密码
Grafana CLIgrafana cli是grafana server自带的一个小巧的二进制工具,用来在运行grafana server的机器上执行命令.插件grafana cli工具允许你安装升 ...
- calc() --- css3
http://www.w3cplus.com/css3/how-to-use-css3-calc-function.html
- Notepad++同一窗口显示左右显示两份文档
Notepad++同一窗口显示左右显示两份文档 直接打开一份文档,test1.txt 再打开第二份文档,test2.txt,会显示成这样: 两份文档是以标签的形式展示的,有时需要同时查看两份文档, ...
- ARM ELF函数重定位
ARM ELF的函数重定位与x86是一致的,但由于汇编指令不同,再鼓捣一遍. 示例代码: #include <stdio.h> #include <stdlib.h> int ...