接收错误:注意:未定义的变量 - 但已定义

时间:2016-10-03 04:25:49

标签: php html

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

  

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

<?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

4 个答案:

答案 0 :(得分:4)

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

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

然后您的HTML可以保持不变。

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

答案 1 :(得分:1)

使用isset检查变量是否存在。

例如

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

答案 2 :(得分:1)

仅在

时设置$num1变量
if(isset($_POST['sub']))

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

答案 3 :(得分:0)

以下代码可以帮助您:

<?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>