初学PHP,这段测试代码的初始化错在哪儿?怎么改?

初学PHP,这段测试代码的初始化错在哪儿?怎么改?

问题描述:

<?php
    $number_to_guess = 42;
    $num_tries = (isset($_POST['num_tries']))? $num_tries+1:1;
    if(!isset($_POST['guess']))
        $message = "Welcome to the guessing machine!";
    elseif(!is_numeric($_POST['guess']))
        $message = "Not a num!";
    else if($_POST['guess'] == $number_to_guess)
        $message = "Well Done!";
    else if($_POST['guess'] > $number_to_guess)
        $message = $_POST['guess']." is too big, Try a smaller one!";
    else if($_POST['guess'] < $number_to_guess)
        $message = $_POST['guess']." is too small, Try a bigger one!";
    else
        $message = "I am terribly confused!";
    echo $_SERVER['PHP_SELF'];
?>
<!DOCTYPE html>
<html>
    <head>
        <title>A HTML/PHP that calls itself!</title>
    </head>
    <body>
    <h1>
        <?php
            echo "Guessing Result:<br/>\"".$message."\"";
        ?>
    </h1>
    <p><strong>Guess number:</strong>
    <?php
        echo $num_tries;
    ?>
    </p>
    <form method="post" action="
    <?php
        echo $_SERVER['PHP_SELF'];
    ?>
    ">
        <p><label for="guess">Type your guess here:</label><br/>
        <input type="text" id="guess" name="guess"/></p>
        <input type="hidden" name="num_tries" value="
        <?php
            echo $num_tries;
        ?>" /></p>
        <button type="submit" name="submit" value="send">Guess it!</button>
    </form>
    </body>
</html>  

图片说明

把isset改成empty试一下。

$num_tries = (isset($_POST['num_tries']))? $num_tries+1:1;
问题应该是在这里:
当程序第一次执行到这句话,(isset($_POST['num_tries']))如果为真,将执行$num_tries+1,
但是$num_tries并没有初始化没有定义,所以会报错undefined variable吧

当你把isset改成empty后num_tries表单传值会怎么执行?

第三行的 num_tries变量没定义