解决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版本下时,无法显示例子图表的问题的更多相关文章

  1. Redis 3.0版本启动时出现警告的解决办法

    原文:http://m.blog.csdn.net/article/details?id=50864933 Redis 3.0.7版本启动时出现警告的解决办法 发表于2016/3/12 12:52:4 ...

  2. php7.0版本不再以类名命名构造函数

    <?php class Car { var $color = "add"; function Car($color="green") { $this-&g ...

  3. 关于windows下基于php7.0.2下编写的第一个扩展

    网上的教程是比较多的,但是基于php7+windows的教程非常之少,通过几天的摸索及参考很多资料,终于发现如下可以运行. php7要求使用vc2015,同时安装sdk,我使用的是8.1的window ...

  4. 在win7中解决Visual C++ 6.0打开文件时出现停止工作问题

    在使用Visual C++ 6.0打开文件时可能会出现下面的情况 这可能是Vc6.0和win7兼容性问题. 方法: 下载filetool即可 链接:https://pan.baidu.com/s/1X ...

  5. 解决关于VC++ 6.0打开文件时,程序停止的问题

    不少boys和girls安装VC++ 6.0英文版后,开始学习C++语言,但是使用软件的过程中,点击“打开”时,就会出现程序进程错误,崩溃的事儿,很是郁闷.最后直接一个对话框如下: 并且vc6.0直接 ...

  6. phpstudy 2016 切换Nginx+php7.0版本所需运行库 vc14 + 安装redis拓展

    去微软官方下载vc14的运行库 链接:https://www.microsoft.com/en-us/download/details.aspx?id=48145 32位运行库 安装成功 切换版本成功 ...

  7. mysql8.0版本下命令行mysqld –skip-grant-tables 失效,无法登陆的问题

    1.管理员权限登陆cmd,不会使用管理员登陆的请搜索cmd,搜索结果右键. 2.命令行输入:net stop mysql;然后提示.服务停止中 --> 服务已停止,如出现其他错误请百度. 这只是 ...

  8. mysql在8.0版本下修改密码的命令

    ubuntu20.04上边部署了一个新的mysql服务,默认没密码,想要修改密码. 使用如下手段 第一种:ALTER USER 'root'@'localhost' IDENTIFIED BY '密码 ...

  9. ubantu php7.0版本降级到php5.6

    http://askubuntu.com/questions/756879/cant-install-php5-on-ubuntu-16-04

随机推荐

  1. SQL-20 查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth

    题目描述 查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growthCREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`s ...

  2. L1-056 猜数字

    一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢.本题就要求你找出其中的赢家. 输入格式: 输入在第一行给出一个正整数N(≤10​4​​).随后 N 行,每行给出一个玩 ...

  3. FindResource () RT_HTML 为什么总是出错呢 ?

    #include <windows.h> #include <commdlg.h> #include <ole2.h> BOOL GetHtmlResource(L ...

  4. normalization 阅读笔记

    https://zhuanlan.zhihu.com/p/33173246 阅读笔记 1. normalization whiting - PCA 2. Internal Covariate Shif ...

  5. leetcode56:合并区间

    给出一个区间的集合,请合并所有重叠的区间.(解题思想来源于:https://blog.csdn.net/qq_34364995/article/details/80788049 ) 示例 1: 输入: ...

  6. 界面设计-Edit控件的Style设置

    以下文字转贴ChinaCock QQ 223717588群: 1. 首先在Form上放一个TEdit类型控件Edit1,最终的效果如下图: 2.选中控件Edit1,点击鼠标右键,在弹出菜单中选择“Ed ...

  7. 使用grafana cli重置grafana密码

    Grafana CLIgrafana cli是grafana server自带的一个小巧的二进制工具,用来在运行grafana server的机器上执行命令.插件grafana cli工具允许你安装升 ...

  8. calc() --- css3

    http://www.w3cplus.com/css3/how-to-use-css3-calc-function.html

  9. Notepad++同一窗口显示左右显示两份文档

    Notepad++同一窗口显示左右显示两份文档   直接打开一份文档,test1.txt 再打开第二份文档,test2.txt,会显示成这样: 两份文档是以标签的形式展示的,有时需要同时查看两份文档, ...

  10. ARM ELF函数重定位

    ARM ELF的函数重定位与x86是一致的,但由于汇编指令不同,再鼓捣一遍. 示例代码: #include <stdio.h> #include <stdlib.h> int ...