Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中执行第二个函数而不影响第一个函数?_Php - Fatal编程技术网

如何在PHP中执行第二个函数而不影响第一个函数?

如何在PHP中执行第二个函数而不影响第一个函数?,php,Php,正如标题所说,我希望在执行第一个函数之后执行第二个函数。换句话说,如果用户单击“绘制第一个数字”按钮,将显示1-10之间的随机数以及“绘制第二个数字”按钮,然后如果用户单击“绘制第二个数字”按钮,将显示1-10之间的另一个随机数 我尝试了以下代码,但当我单击“绘制第二个数字”按钮时,它会将我返回到流程的开始 <?php if (isset($_POST['firstnumber'])) { function roll () { return mt_rand(1

正如标题所说,我希望在执行第一个函数之后执行第二个函数。换句话说,如果用户单击“绘制第一个数字”按钮,将显示1-10之间的随机数以及“绘制第二个数字”按钮,然后如果用户单击“绘制第二个数字”按钮,将显示1-10之间的另一个随机数

我尝试了以下代码,但当我单击“绘制第二个数字”按钮时,它会将我返回到流程的开始

 <?php
   if (isset($_POST['firstnumber'])) {

   function roll () {
       return mt_rand(1,10);
   }

   echo 'First Number: '.roll().'<form method="post"><input type="submit" value="Draw second number" name="secondnumber"></form>';

   if (isset($_POST['secondnumber'])) {
   echo 'Second Number: '.roll();
   }
   }

   ?>
<form method="post">
   <input type="submit" value="Draw first number" name="firstnumber">
</form>


我希望在单击“第二个数字”按钮时,代码会显示第二个数字,而不是初始代码。

在文件的开头,检查以下条件

   <?php if (isset($_POST['firstnumber'])) {

嗨,欢迎来到SO!你的代码的目的是什么?(听起来在javascript中这样做会更好)但不管怎样,您都不必定义函数roll()两次。感谢您的代码,它完全符合我的要求。我想补充一点:当我点击“绘制第二个数字”时,是否也可以显示“第一个数字”?例如,单击“绘制第一个数字”,第一个数字显示为7。然后单击“绘制第二个数字”,7再次显示第二个数字。是的,当然可以。但由于“第一个号码”没有保存在任何地方,所以在生成第二个号码时无法访问它。有几种方法可以保存第一个数字:将其保存在会话()中,将其设置为隐藏字段的值,甚至将其保存在数据库中。尝试你喜欢的,因为它只是为了学习
<?php

   function roll() {
       return mt_rand(1,10);
   }

   if (isset($_POST['firstnumber']) === true || isset($_POST['secondnumber']) === true) {
       if (isset($_POST['firstnumber'])) {
           echo 'First Number: ' . roll() . '<form method="post"><input type="submit" value="Draw second number" name="secondnumber"></form>';
       }

       if (isset($_POST['secondnumber'])) {
           $secondNumber = roll();
       }
   }
   ?>
<form method="post">
   <input type="submit" value="Draw first number" name="firstnumber">
</form>