变量已经在方法中定义但执行的时候还报错?

来源:4-4 无刷新显示评论内容

qq_omg_3

2015-06-27 14:30

Notice: Undefined variable: link_start in D:\wamp\www\mysqli\comment.class.php on line 70这个变量已经定义在这个方法里面了,但是那个首页还是报错?

这下面是comment.class.php中的代码
public function output(){
        if($this->data['url']){
            $link_start="<a href='".$this->data['url']."' target='_blank'>";

            $link_end="</a>";
        }
        $dateStr=date("Y年m月d日 H:i:s",$this->data['pubTime']);
        $res=<<<EOF
        <div class='comment'>
            <div class='face'>
                {$link_start}
                    <img width='50' height='50' src="img/{$this->data['face']}.jpg" alt="" />
                {$link_end}
            </div>
            <div class='username'>
                {$link_start}
                {$this->data['username']}
                {$link_end}
            </div>
            <div class='date' title='发布于{$dateStr}'>
                {$dateStr}
            </div>
            <p>{$this->data['content']}</p>
        </div>
EOF;
            return $res;
    }

70行的代码是<div class='face'>下的{link_start}这里,其他地方的link_start, link_end 也报错,请问这是什么 原因?

写回答 关注

3回答

  • King
    2015-07-04 00:02:18
    已采纳

    直接修改PHP配置文件中error_reporting=E_ALL&~E_NOTICE,重启服务器即可

    ^-^...

  • 白素贞的许仙
    2016-11-01 19:28:43

    回复 早安EchoMichael:我今天刚遇到这个问题,困扰了我两天,至于这个问题出现的原因,我猜测是php版本不同解析代码不同的问题,

    我的解决办法如下:

    if($this->data['url']){

                $url=$this->data['url'];

                $dateStr=date("Y年m月d日 H:i:s",$this->data['pubTime']);

                $res=<<<EOF

            <div class='comment'>

                <div class='face'>

                    <a href="{$url}" target='_blank'>

                        <img width='50' height='50' src="img/{$this->data['face']}.jpg">

                    </a>

                </div>

                <div class='username'>

                    <a href="{$url}" target='_blank'>

                        {$this->data['username']}

                    </a>

                </div>

                <div class='date' title='发布于{$dateStr}'>

                    {$dateStr}

                </div>

                <p>{$this->data['content']}</p>

            </div>

    EOF;

                return $res;

            }else{

                $dateStr=date("Y年m月d日 H:i:s",$this->data['pubTime']);

                $res=<<<EOF

            <div class='comment'>

                <div class='face'>

                        <img width='50' height='50' src="img/{$this->data['face']}.jpg">

                </div>

                <div class='username'>

                        {$this->data['username']}

                </div>

                <div class='date' title='发布于{$dateStr}'>

                    {$dateStr}

                </div>

                <p>{$this->data['content']}</p>

            </div>

    EOF;

                return $res;

            }

    对当前url地址做一个判断,如果存在则传入地址,否则不使用超连接,测试了一下,效果是一样的

    希望这对你有帮助 互相帮助 共同进步


  • 慕侠9145951
    2016-06-30 19:11:09

    根本不是erro_reporting的问题,是因为$this->data['url']为空时没有任何处理

    白素贞的许仙

    看下面回复,这有字数限制

    2016-11-01 19:29:39

    共 2 条回复 >

Duang~MySQLi扩展库来袭

本教程从面向对象和面向过程两个方面为你开启MySQLi学习之旅

28643 学习 · 181 问题

查看课程

相似问题