php函数返回问题,新生求解答

<?php
.....省略
$number = mt_rand(1000000000,9999999999);
$username = $_POST['username'];
......省略
function getusername(){
global $username;
echo $username;
}
function getnumber(){
global $number;
echo $number;
}
?>
我在外部调用getnumber()和getusername()得到的并不是第一次生成的随机数

而是另一个十位数 username也不是post穿过来的 是空

  <html>                                                                      
  2 <body>
  3     hello world<br/>
  4     <form action="login.php" method="POST">
  5         <input name="username" value=""/>
  6     </form>
  7     <?php
  8         echo "<br>=======<br>";
  9         require_once("login.php");
 10         echo "getusername:",getusername(),"<br>";
 11         echo "getnumber:",getnumber(),"<br>";
 12         echo "<br>=====<br>";
 13     ?>
 14 </body>
 15 </html>

 <?php                                                                       
  2     echo "here<br>";
  3     $number = mt_rand(1000000000,9999999999);
  4     echo "生成number;",$number,"<br>";
  5     $username = $_POST["username"];
  6     echo "接收username:",$username,"<br>";
  7     function getusername(){
  8         global $username;
  9         echo $username,"<br>";
 10     }
 11     function getnumber(){
 12         global $number;
 13         echo $number,"<br>";
 14     }
 15 ?>

是这样的形式吗?如果是的话

当你post到login的时候就会调用login.php一次,这样的等于$number = mt_rand(1000000000,9999999999);
$username = $_POST['username'];执行了一次,当再次require的时候又执行了一次,也就跟先前的不一样了

外部调用是在这个php文件调用吗

这个页面每执行一次,就会产生一个,你可以放在session里