2012-09-25 19 views
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等...相同的結果。

+0

你能發佈錯誤的文字嗎? – BostonJohn

+0

哪一行?它主要是那些不存在的行之前的行:D –

回答

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,根據您的設置,您甚至不會看到它。

+0

另外,如果沒有設置$ _GET ['ref'],那麼使用變量$ ref也會拋出錯誤... – jtheman

+1

有些情況下'isset' 'empty'返回true。這是(至少)當$ _GET ['ref']'等於0或空字符串的情況。 – Arjan

+0

鏈接部分如何?有什麼建議嗎?它不工作atm。 – JYuk

相關問題