Php 不存在的行上出现错误

Php 不存在的行上出现错误,php,Php,我试图定义一个基于$\u 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 { $lin

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

您缺少一个结束语
}

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_通知
,根据您的设置,您甚至可能看不到该通知。

您可以发布错误文本吗?哪一行?它主要是不存在的前一行:DAlso if$\u GET['ref']如果未设置,则使用变量$ref也会引发错误…在某些情况下,
isset
empty
都返回true。这(至少)是
$\u GET['ref'时的情况
等于0或空字符串。链接部分怎么办?有什么提示吗?它不起作用。@user1665256我在上次编辑中已经给出了足够的线索,不要指望我写下全部内容:)。另外请阅读Arjan的评论,这很重要。我真的被这个“三元运算符”搞糊涂了部分。这是不是代替了前面的if语句或。。。?