我正在尝试定义一个基于$ _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等......结果相同。
答案 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
,您甚至可能看不到它,具体取决于您的设置。