0

我正在通过在线课程慢慢学习 PHP。一个特定的练习是这样的:

html页面:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Greeting the Beatles</title>
</head>
<body>
    Choose a Beatle to greet.
    <ul>
    <li><a href="HelloWho.php?Beatle=Paul">Paul</a></li>
    <li><a href="HelloWho.php?Beatle=John">John</a></li>
    <li><a href="HelloWho.php?Beatle=George">George</a></li>
    <li><a href="HelloWho.php?Beatle=Ringo">Ringo</a></li>
    </ul>
</body>
</html>

对应的php页面:

<?php
$beatle = $_GET['Beatle'];
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Hello <?php echo $beatle ?>!</title>
</head>
<body>
<?php
    echo "Hello $beatle!";
?>
</body>
</html>

我的代码与上面的代码相同,但我不断收到一个页面,说我在第 2 行有一个未定义的索引:

Notice: Undefined index: Greet in /Applications/XAMPP/xamppfiles/htdocs/Webucator/ClassFiles/Webucator/ClassFiles/PHPBasics/Exercises/HelloWho.php on line 2
World!

我意识到这是一个愚蠢的问题,但是除了我还没有了解的 isset() 函数之外,我还没有看到它的答案。

4

1 回答 1

0

您发布的代码确实可以正常工作,并且不会给出您发布的错误。

阅读错误内容可以轻松解决您的问题。它说第 2 行有一个未定义的索引“Greet”。

确保在您的副本中,您的第 2 行与工作版本相同

$beatle = $_GET['Beatle'];

如果您仔细观察它是如何工作的,您会看到您将数据传递到的 url

HelloWho.php?Beatle=NameGoesHere

PhP 文件能够从

?Beatle=

通过使用

$_GET['Beatle']

并将其存储在第二行中的变量中

$beatle = $_GET['Beatle'];

此外,我知道你说你还没有学习它,但你可以使用 isset() 来检查字符串是否存在

if (isset($_GET['Beatle'])) {
    $beatle = $_GET['Beatle'];
    echo "Hello $beatle!";
}
于 2013-11-08T21:15:58.477 回答