在Codeigniter gchart帮助用法方面需要帮助

时间:2011-04-04 03:38:00

标签: php codeigniter syntax-error gchart

我按照wiki artichle(http://codeigniter.com/wiki/gchart/revision/5312/)在我的CI 2.0中练习谷歌图表。 但它不起作用。

控制器文件:ci \ application \ helpers \ mytest.php

$this->load->helper( 'gchart' );
$this->load->view('my_test');

查看文件:ci \ application \ helpers \ my_test.php

$encoded_data = extendedencode(array(0, 1, 2, 3, 4, 5, 6) &maxvalue;);
echo <<< EOS
     <img src="
        http://chart.apis.google.com/chart?
            cht=lc
            &chs=250x250
            &chd;:e{$encoded}
        "
        alt="line graph of some example data" />
EOS;

帮助文件:ci \ application \ helpers \ gchart_helper.php

// I do copied all the source code from the wiki url link above.

当我尝试用CI绘制时。 它显示错误, 解析错误:语法错误,意外';'在第54行的C:\ xampp \ htdocs \ demo \ ci \ application \ views \ my_test.php

我的手术有什么不对吗? 我比较了gchart_helper.php

中的extendedencode()
function extendedencode($data, &$maxvalue='notspecified')
来自my_test.php的

和extendedencode()

$encoded_data = extendedencode(array(0, 1, 2, 3, 4, 5, 6) &maxvalue;);

然后我在my_test.php视图文件中更新了extendedencode()行,

$encoded_data = extendedencode(array(0, 1, 2, 3, 4, 5, 6), &maxvalue);

再试一次,但仍然会在下方收到此错误消息。

解析错误:语法错误,意外')',期望第54行的C:\ xampp \ htdocs \ demo \ ci \ application \ views \ my_test.php中的T_PAAMAYIM_NEKUDOTAYIM

非常感谢任何帮助或评论。

[更新]

When I use the formated below, 

$encoded_data = extendedencode(array(0, 1, 2, 3, 4, 5, 6) &maxvalue);

showed another four error message.



Events List

A PHP Error was encountered

Severity: Notice

Message: Use of undefined constant maxvalue - assumed 'maxvalue'

Filename: views/my_test.php

Line Number: 54

A PHP Error was encountered

Severity: Warning

Message: max() [function.max]: When only one parameter is given, it must be an array

Filename: helpers/gchart_helper.php

Line Number: 49

A PHP Error was encountered

Severity: Warning

Message: Division by zero

Filename: helpers/gchart_helper.php

Line Number: 55

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: encoded

Filename: views/my_test.php

Line Number: 61

[针对Frank的建议更新]

下面还有两个错误,

A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 64

Filename: helpers/gchart_helper.php

Line Number: 65  // code line: $ret .= $grid[$x].$grid[$y];


A PHP Error was encountered

Severity: Notice

Message: Undefined variable: encoded

Filename: views/my_test.php

Line Number: 61 // code line: &chd;:e{$encoded}

2 个答案:

答案 0 :(得分:3)

Alex的答案在语法上并不正确。尝试:

$encoded_data = extendedencode(array(0, 1, 2, 3, 4, 5, 6), $maxvalue);

&amp;在函数文档中只是告诉您您的变量将被引用使用。你不应该(实际上不能)包括&amp;当你调用该函数时。在旧版本的PHP中,有一个名为call-time的功能,通过引用传递,你可以使用这样的语法,但在最近的版本中它是不允许的。

编辑:

关于您列出的其中一个错误:正如错误所示,您向我们展示的代码中没有$encoded var。尝试用&chd;:e{$encoded}替换&chd;:e{$encoded_data} - 我猜这可能是你想要的。

一种沉默最终错误的草率方法是将$ret .= $grid[$x].$grid[$y];替换为$ret .= @$grid[$x].@$grid[$y];。如果没有额外的代码上下文,很难说实际的根本问题是什么。

答案 1 :(得分:0)

我认为这条线上的半冒号很糟糕:

$encoded_data = extendedencode(array(0, 1, 2, 3, 4, 5, 6) &maxvalue;);

&maxvalue之后。

尝试取出它?