根据GET参数显示动态文本

时间:2011-03-16 01:59:28

标签: php parameters

我正在努力学习PHP,我想我自己做一个简单的练习制作一个网站,如果有人去了它,他们会得到“你好朋友!”但如果我的妻子(名叫Dawn)去了它,她就会收到不同的信息。

不幸的是,它总是显得空白,我不确定为什么。

我知道它仅适用于带有文本的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!";
/>

那么,出了什么问题?

3 个答案:

答案 0 :(得分:7)

访问数组($_GET是一个数组),就像在Java中一样,使用方括号:

$who = $_GET['who'];

if($who)如果$who为非假,则if(isset($who) && $who == "Dawn") 评估为true,要检查它是否需要使用isset

?>

最后,如@Shivan所述,结束标记应为/>,而不是{{1}}。

答案 1 :(得分:3)

多个问题应该是:

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

更多信息:

  • 如果可能,请使用单引号进行更快的解析
  • 用括号
  • 关闭if else case是个好习惯
  • 结束标记应为?>

答案 2 :(得分:1)

试试这个尺寸:

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

这会检查以确保密钥为who的_GET值,否则php会抛出错误。