如何解决PHP中的这两个“未定义索引”错误?

时间:2019-01-05 06:38:11

标签: php

因此,我正在用PHP开发一个小项目,当我检查网页时,看到了两个错误:

  

注意:未定义的索引:位于C:\ xampp \ htdocs \ characters.php中的has_char   第35行

     

注意:未定义的索引:位于C:\ xampp \ htdocs \ characters.php中的has_char   第42行

我似乎无法弄清楚如何检查$_SESSION['has_char']是否为真,因为这取决于用户在网页上看到的内容是否不同。我尝试按照自己的方式进行操作,但遇到了这两个错误,该如何纠正并使其正常工作?

<!DOCTYPE html>
<html>
<head>
    <title>Character Screen</title>
    <link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>

<div class="header">
    <h2>Character</h2>
</div>
<div class="content">
    <?php
    echo "Welcome," . " ". $_SESSION['username'] . "!";
    ?>
    <?php if($_SESSION['has_char'] === False) : ?>
            <div class="no character">
            <?php echo "You do not have a character." ?>
            Click <a href="charactercreation.php">here</a> to make one!
        </div>
    <?php endif ?>
    <?php
        if($_SESSION['has_char'] === True) {
            echo("Your character is". $char_name);
        }

    ?>
</div>
<div class="log out">
    <br>
    <a href="logout.php">Log Out</a>
</div>

</body>
</html>

if($_SESSION['has_char'] === False”和“ if($_SESSION['has_char'] === True”似乎是麻烦的制造者,但我对此没有很好的解决方案。

1 个答案:

答案 0 :(得分:3)

一种方法是使用isset()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

您还可以设置默认值,以便您知道有一个值。

if ( isset($_SESSION['has_char']) && $_SESSION['has_char'] === True) {
    echo("Your character is". $char_name);
}

然后是array_key_exists()

$hasChar = $_SESSION['has_char'] ?? null;
if ( $hasChar === true ) {
    // something is true
} elseif ( $hasChar === false ) {
    // something is false
} else {
    // something is null
}