接收错误:通知:未定义变量-& #160;但已经定义


Receiving Error: Notice: Undefined variable – but already defined

我不知道我做错了什么。但是我得到了这个

注意:未定义变量:num1在D:'Programs'XAMPP'htdocs'homework'addsub.php中的第15行

<?php 
    if(isset($_POST['sub']))
    {
        $num1=$_POST['t1'];
        $num2=$_POST['t2'];
        if ($_POST['sub']=="+") {
            $res= $num1 + $num2;
        }
        elseif($_POST['sub']=="-"){
            $res = $num1-$num2;
        }
    }
 ?>
<form action="addsub.php"  method="POST">
    <input type="text" name="t1" value="<?php echo $num1;?>"><br>
    <input type="text" name="t2" value="<?php echo $num2;?>"><br>
    <input type="text" name="res" value="<?php echo $res;?>"><br>
    <input type="submit" name="sub" value="+">
    <input type="submit" name="sub" value="-">
</form>

当我在文本框值中使用$num1$num2时,它显示错误。我的一个朋友在他的笔记本电脑上使用了同样的代码,但他使用的是旧版本的Xampp。它可以正常工作,但是Xampp的更新版本会出现这个错误。我正在使用Xampp v3.2.1

如果该变量不存在,则初始化该变量,如下所示:

<?php
if (!isset($num1)) {
    $num1 = '';
}

那么你的HTML可以保持不变。

我推荐这种方法的原因是它创建了干净的代码- HTML将始终显示$num1的值,如果您选择稍后将其初始化为不同的值,它应该更容易在PHP中找到。

使用isset检查变量是否存在

例子
<input type="text" name="t1" value="<?php echo isset($num1)?$num1:""; ?>"><br>

只能在以下情况下设置$num1变量

if(isset($_POST['sub']))

因此,如果$_POST['sub']不存在,则变量未定义!

下面是代码,可能会对您有所帮助:

<?php 
    var $res="";
    var $num1="";
    var $num2="";
    if(isset($_POST['sub']))
    {
        $num1=$_POST['t1'];
        $num2=$_POST['t2'];
        if ($_POST['sub']=="+") {
            $res= $num1 + $num2;
        }
        elseif($_POST['sub']=="-"){
            $res = $num1-$num2;
        }
    }
 ?>
<form action="addsub.php"  method="POST">
    <input type="text" name="t1" value="<?php echo $num1;?>"><br>
    <input type="text" name="t2" value="<?php echo $num2;?>"><br>
    <input type="text" name="res" value="<?php echo $res;?>"><br>
    <input type="submit" name="sub" value="+">
    <input type="submit" name="sub" value="-">
</form>