2014-09-03 47 views
-4

我對PHP世界很陌生。我在這個網站搜索了我正在尋找的具體內容,但找不到它。php代碼if then else

問題:我有一個頁面,我想要一個標籤,如「User =」,所以如果有一個url有index.php?u = Joe,那麼我想讓「User = Joe」出現在該用戶的頁面。

現在我已經到了那一點,沒有問題。我的問題是,如果有人進入index.php而沒有?u = user值,我仍想顯示某些內容。

例如:如果url中沒有任何內容,那麼我希望頁面顯示「User = Unknown」。

我知道這可以用if語句完成,但我需要一些幫助,我找不到正確的概念。

謝謝。

+0

衝浪的PHP US $ _ GET變量... – 2014-09-03 20:52:09

+0

謝謝大家對快速作出迴應!我的問題是固定的:) – 2014-09-03 21:34:39

回答

1

使用isset()來測試是否提供了參數變量。

if (isset($_GET['u'])) { 
    $user = $_GET['u']; 
} else { 
    $user = "Unknown"; 
} 

echo "User = $user"; 
1

你只需要檢查,如果該值設置與isset()

<?php 

if(isset($_GET["u"]) && $_GET["u"] != ""){ 
    $var = $_GET["u"]; 
} else{ 
    $var = "Joe"; 
} 

?> 
0

其他類似的答案,但我更喜歡array_key_existsisset

if (array_key_exists('u', $_GET)) 

原因在於array_key_exists特異於陣列和具有比isset少「神奇」異常。

0

我會推薦使用filter_input($input_type,$input_var_name)來獲取變量的值。這是因爲如果找不到變量,則返回false。如果你從一個數組中取出它,它會拋出一個錯誤。你可以使用這樣的事情:

$user = filter_input(INPUT_GET,'u'); 
$user = !isset($user) ? 'Unknown' : $user; 

然而,你應該在一個函數封裝這個讓你不必爲此,你需要的用戶名,每次改寫。事實上,如果您需要使用用戶名來保存多個頁面,我建議使用Cookie。

0

這會做的伎倆:快速和容易..

if($_GET['u']!=''){ 
    echo 'user = '.$_GET['u']; // The parameter has been set, and is not empty. 
} else { 
    echo 'Unknown user'; // The parameter has not even been set. So the value has no impact, and is not checked. 
} 
+1

注意,這段代碼可以工作,但會在你的error_log文件中產生一個錯誤。您必須改用isset()。 – pmrotule 2014-09-03 21:27:30

+0

什麼是錯誤? – ThomasK 2014-09-03 21:44:51

+1

我測試了你的代碼,這是我在error.log文件中得到的:'PHP Notice:Undefined index:u in /home/public/test.php on line 3' – pmrotule 2014-09-03 21:57:03