【问题标题】:Need help on Codeigniter gchart help usage需要有关 Codeigniter gchart 帮助使用的帮助
【发布时间】:2011-04-04 03:37:59
【问题描述】:

我按照 wiki 文章 (http://codeigniter.com/wiki/gchart/revision/5312/) 在我的 CI 2.0 中练习 google chart。 但它不起作用。

控制器文件: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 的扩展编码()

$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

非常感谢任何帮助或 cmets。

[更新]

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

[针对弗兰克的建议进行了更新]

下面还有两个错误,

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}

【问题讨论】:

    标签: php codeigniter syntax-error gchart


    【解决方案1】:

    Alex 的回答在语法上不正确。试试:

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

    函数文档中的 & 只是告诉你你的变量将被引用使用。调用函数时不应该(实际上也不能)包含 & 。在旧版本的 PHP 中,有一个称为调用时通过引用传递的功能,您可以在其中使用类似的语法,但在最近的版本中不允许这样做。

    编辑:

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

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

    【讨论】:

    • 是的,参考用法,在最近的版本中是不允许的。
    • 嗨弗兰克,我根据你的建议再次更新了我的帖子。而且还有两个错误。谢谢。
    【解决方案2】:

    我认为这行的分号不好:

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

    就在&amp;maxvalue之后。

    试着把它拿出来?

    【讨论】:

    • 这似乎与最初发布的错误不同。如果这成功清除了您遇到的第一个错误,请将其标记为已接受并针对您的新问题提出新问题。谢谢!
    • Alex:您提供的不是有效的 PHP,因此不是一个有用的答案。
    • 那行来自他的原始帖子,他已经编辑了它。请不要投反对票,我正在解决与您相同的问题(检查编辑历史记录)
    • 即使去掉分号,该行仍有2个你没有提到的语法错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 2014-12-26
    • 2013-08-12
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多