php 如果我将 <?php?> 代码放在正文的顶部或底部,会有不同吗

php Is it different if I put my <?php?> code at the top of the body or at the bottom

你好,请帮助我理解这一点,因为我 运行 一个代码,我将该代码放在底部,它在这里有错误,正如你所看到的,它在这里有错误,它是 THE ERROR!

<html>
    <body>

    <form action="#" method="post">
    Num1:<input name="num1"><br>
    <input type='radio'  name='express' value='add'>+
    <input type='radio'  name='express' value='subtract'>-
    <input type='radio'  name='express' value='multiply'>*
    <input type='radio'  name='express' value='divide'>/
    <br>
    Num2:<input name="num2"> 
    Result:<input value='<?php echo  $result;?>'>
    <input type="submit" name="submit">
    </form>
   <?php
      function add($x,$y){

           $add=$x + $y;
           return $add;

       }
       function subtract($x,$y){

           $subtract=$x - $y;
           return $subtract;

       }
       function multiply($x,$y){

           $multiply=$x * $y;
           return $multiply;

       }
       function divide($x,$y){

           $divide=$x / $y;
           return $divide;

       }

       if(isset($_POST['submit'])){
           $x=$_POST['num1'];
           $y=$_POST['num2'];
           if(isset($_POST['express'])){
               $z=$_POST['express'];
            if($x == '' or $y == '' ){
                echo 'input a number';
               }
           else if($z == 'add'){
               $result= add($x,$y);  
           }
           else if($z=='subtract'){
               $result= subtract($x,$y);

           }
           else if($z=='multiply'){
               $result= multiply($x,$y);

           }
           else{
               $result= divide($x,$y);

           }

           }



       }


    ?>
    </body>
    </html>

虽然这是工作版本,但我将所有代码都放在正文的顶部

<html>
    <body>
     <?php
      function add($x,$y){

           $add=$x + $y;
           return $add;

       }
       function subtract($x,$y){

           $subtract=$x - $y;
           return $subtract;

       }
       function multiply($x,$y){

           $multiply=$x * $y;
           return $multiply;

       }
       function divide($x,$y){

           $divide=$x / $y;
           return $divide;

       }

       if(isset($_POST['submit'])){
           $x=$_POST['num1'];
           $y=$_POST['num2'];
           if(isset($_POST['express'])){
               $z=$_POST['express'];
            if($x == '' or $y == '' ){
                echo 'input a number';
               }
           else if($z == 'add'){
               $result= add($x,$y);  
           }
           else if($z=='subtract'){
               $result= subtract($x,$y);

           }
           else if($z=='multiply'){
               $result= multiply($x,$y);

           }
           else{
               $result= divide($x,$y);

           }

           }



       }


    ?>
    <form action="#" method="post">
    Num1:<input name="num1"><br>
    <input type='radio'  name='express' value='add'>+
    <input type='radio'  name='express' value='subtract'>-
    <input type='radio'  name='express' value='multiply'>*
    <input type='radio'  name='express' value='divide'>/
    <br>
    Num2:<input name="num2"> 
    Result:<input value='<?php echo  $result;?>'>
    <input type="submit" name="submit">
    </form>

    </body>
    </html>

在第一个代码示例中,您尝试回显稍后声明的变量,例如,如果您不知道自己多大了,可以告诉某人 "I'm 20 years old"。

虽然在第二个例子中你已经声明了变量(你知道你多大了)并且你可以输出它。

在第一个示例中,您在声明之前打印 $result,而在第二个示例中,您在声明之后打印 $result。由于在第一个示例中未声明 [​​=11=] 并且您试图在这一行中打印它:

Result:<input value='<?php echo  $result;?>'>

这就是您收到错误 Undefined Variable 的原因。