不存在的在线错误

时间:2012-09-25 21:53:11

标签: php

我正在尝试定义一个基于$ _GET变量的链接,但是它说在一条不存在的行上有错误...

 <?php

if(isset($_GET['ref'])){
    if(!empty($_GET['ref']))
    {
        $ref = $_GET['ref'];
    }
?>

<?php

      if ($ref != "") {
  $link = "http://site.com/page.php?ref=$ref";
} else {

 $link = "http://site.com/page.php";
    }

?>

有人看到了什么?我很确定它很好。

我尝试了多种不同的方式,使用isset等......结果相同。

1 个答案:

答案 0 :(得分:2)

您错过了结束}

if(isset($_GET['ref'])){
    if(!empty($_GET['ref']))
    {
        $ref = $_GET['ref'];
    }
}

顺便说一下,这段代码非常冗余。 empty()还会检查变量是否已设置,因此您不需要isset()

您也可以使用ternary operator,例如:

$ref = empty($_GET['ref']) ? null : $_GET['ref'];

稍后检查:

if (!is_null($ref)) {
    //whatever
}

否则,在您的代码中,当执行到达if ($ref != "") {时,变量$ref可能甚至不存在 - 这会抛出E_NOTICE,您甚至可能看不到它,具体取决于您的设置。