jszy_jin 2018-09-06 06:40 采纳率: 0%
浏览 497
已结题

PHP函数参数为数组时输出图形的问题

我的PHP程序中,函数DrawLineChar($CR_Sum,$date_list)中的参数$CR_Sum和$date_list如果在主程序中定义为常量(如程序一所示),那么折线图是正确可以显示的。但是如果在主程序中将参数设为变量(是调用其他函数的返回值)时,那么图形就显示不出来,只显示一个黑色背景(我调试时,发现这两个参数如果在函数DrawLineChar()中用print_r()函数打印是可以输出到浏览器的),(如程序二所示)。请问这是什么原因
下面是我的程序
程序一:
<?php
function DrawLineChar($CR_Sum,$date_list)
{
include("/usr/share/php/jpgraph/src/jpgraph.php");
include("/usr/share/php/jpgraph/src/jpgraph_line.php");
#print_r($CR_Sum);
#print_r($date_list);
$graph = new Graph(500,300);
$graph->SetScale("textlin");
$graph->SetShadow();
$graph->img->SetMargin(60,30,30,70);

$graph->graph_theme = null;

$lineplot1=new LinePlot($CR_Sum);

$lineplot1->value->SetColor("red");
$lineplot1->value->Show();
$graph->Add($lineplot1);

$graph->title->Set("CR Line Charts");
$graph->xaxis->title->Set("Date");
$graph->yaxis->title->Set("Number");
$graph->title->SetMargin(10);
$graph->xaxis->title->SetMargin(10);
$graph->yaxis->title->SetMargin(10);
//$date=array_keys($date_list_para);
$graph->xaxis->SetTickLabels($date_list);

$graph->Stroke(); //输出图像
}
$date_list_para=array(
'2018-05-06',
'2018-05-07',
'2018-05-08',
'2018-05-10',
'2018-05-11'
);
$CR_Sum_para=array(
2,3,4,5,6);
DrawLineChar($CR_Sum_para,$date_list_para);
?>

程序二
<?php
include ("ConnDB4.php");
include("CRSumV3.php");
include("CRDatProv5.php");
include("FetchCRPerDayv4.php");
include("DateListv2.php");
function DrawGraLineDate($CR_Sum,$date_list)
{
include("/usr/share/php/jpgraph/src/jpgraph.php");
include("/usr/share/php/jpgraph/src/jpgraph_line.php");
#print_r($CR_Sum);
#print_r($date_list);
$graph = new Graph(500,300);
$graph->SetScale("textlin");
$graph->SetShadow();
$graph->img->SetMargin(60,30,30,70);
$graph->graph_theme = null;
$lineplot1=new LinePlot($CR_Sum);
$lineplot1->value->SetColor("red");
$lineplot1->value->Show();
$graph->Add($lineplot1);
$graph->title->Set("CR Line Charts");
$graph->xaxis->title->Set("Date");
$graph->yaxis->title->Set("Number");
$graph->title->SetMargin(10);
$graph->xaxis->title->SetMargin(10);
$graph->yaxis->title->SetMargin(10);
$graph->xaxis->SetTickLabels($date_list);
$graph->Stroke(); //输出图像
}
ConnDB4();
$taskID=$_POST['taskID'];
$orig_date_list=CRDatPro($taskID);
$original_CR=FetchCRPerDay($taskID);
$date_list_para=DateList($orig_date_list);
$CR_sum_para=CR_Sum($original_CR);
DrawGraLineDate($CR_sum_para,$date_list_para);
?>

  • 写回答

2条回答

  • 社会瑞弟呀 2018-09-13 06:13
    关注

    首先看一下图2的变量 $CR_sum_para, ,$date_list_para的值是否和图一自己定义的值一致,如果不一致,要通过修改$_POST数据的方式模拟到一致
    此时如果还是有问题的话,逐个删除
    include ("ConnDB4.php");
    include("CRSumV3.php");
    include("CRDatProv5.php");
    include("FetchCRPerDayv4.php");
    include("DateListv2.php");
    直到图一和图二的输出的图像一致,保持一致后,查看上一个删除的include里面的逻辑,是不是有什么错误的操作

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)