2011-03-16 65 views
3

我正在嘗試學習PHP,我想我會讓自己做一個網站的簡單練習,如果有人進入它,他們會得到「你好朋友!」但是如果我的妻子(名叫Dawn)去了它,她會得到不同的信息。根據GET參數顯示動態文本

不幸的是,它總是顯示爲空白,我不確定爲什麼。

我知道它只適用於index.html文本,我知道它適用於index.php,只要我沒有<?php標記(只是文本作品)。但是,當我嘗試使它真正的PHP,它只是失敗。

  • 我想site/index.php產生 「你好朋友!」
  • 我想site/index.php?who=Bob到 產量「你好朋友!」
  • 我想site/index.php?who=Dawn到 產量「你好黎明!我愛你!」

這是我有:

<?php 
print 'Hello '; 
$who = $_GET("who"); 
if($who && $who == "Dawn") 
    print "Dawn! I love you!"; 
else 
    print "friend!"; 
/> 

那麼,什麼是錯的?

+0

@Downvoter我很好奇你爲什麼低估了我的問題。 – corsiKa 2011-03-16 02:22:26

回答

7

訪問陣列($_GET是一個數組),就像在Java中,使用方括號:

$who = $_GET['who']; 

而且if($who)計算結果爲真,如果$who是不假,以檢查它的設置,你需要使用isset

if(isset($who) && $who == "Dawn") 

最後,由@Shivan指出,結束標籤應該是?>,不/>

+1

$ _GET是一個數組?我懂了。我會給這個鏡頭。 – corsiKa 2011-03-16 02:02:18

+0

@glowcoder:是的:http://php.net/manual/en/reserved.variables.get.php – 2011-03-16 02:03:11

+0

這絕對有用。但是,它甚至不會打印第一行的「Hello」。 – corsiKa 2011-03-16 02:03:40

3

的多個問題,應該是:

<?php 
print 'Hello '; 
$who = $_GET["who"]; 
if(isset($who) && $who == "Dawn") { 
    print 'Dawn! I love you!'; 
} else { 
    print 'friend!'; 
} 
?> 

的更多信息:

  • 如果可能的話,使用單引號更快的解析
  • 這是一個好習慣,關閉,如果用括號其他情況
  • 結束標籤應該是?>
1

嘗試這種對大小:

<?php 
echo 'Hello '; 
$who = isset($_GET["who"])?$_GET["who"]:false; 
if($who) 
    echo "Dawn! I love you!"; 
else 
    echo "friend!"; 
?> 

此檢查,以確保有一個與關鍵who否則PHP將拋出一個錯誤值_GET。