0

我试图定义一个基于 $_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 等......结果相同。

4

1 回答 1

2

你错过了一个结束}

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

顺便说一句,这段代码是相当多余的。empty()还将检查变量是否已设置,因此您不需要isset().

您还可以使用三元运算符,适用于以下情况:

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

稍后检查:

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

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

于 2012-09-25T21:54:23.623 回答