php - 在php类中生成一个随机数

标签 php json class object

我正在做一个我在网上找到的练习来自学 php。我正在制作的程序是一个“猜数字”游戏,我需要生成一个随机数来猜测。当不使用类并使用 html 输入框进行用户输入时,我在练习中取得了成功:

<?php
if(isset($_POST['number'])) {
    $number = $_POST['number'];
} else {
    $number = rand(1,99);
}

if($_POST["guess"]) {
    // grab the user input guess
    $guess  = $_POST['guess'];
    $number  = $_POST['number'];
    $output = '';
    static $count = 0; //Initialize count

    if ($guess < $number) { 
        $output .= "$guess" . "<br />" . "Guess Higher";
        $count++;
    } elseif($guess > $number) {       
        $output .= "$guess" . "<br />" . "Guess Lower";
        $count++;
    } elseif($guess == $number) {  
        $count++;    
        $output .= "$guess" . "<br />" . "You got it!" . "<br />" . "You guessed it in " . $count . " trials";
    }
} ?>


<!DOCTYPE html>
<html>
    <head>
        <title>Guess A Number</title>
    </head>

    <body>
        <form action="NumberGuess.php" method="post">
            <label for="guess">Guess A Number:</label><br/ >
            <input type="text" name="guess" />
            <input name="number" type="hidden" value="<?= $number ?>" />
            <input name="submit" type="submit" />
            <br/>
            <?php echo $output ?>
            <br/>
        </form>
    </body>
</html>

但是,现在我想使用 json 作为输入并使用类/对象来重复练习。我尝试使用 rand() 来生成随机数,但是它导致了一个问题并且页面无法加载:

class NumberGuess {
    protected $guess = 0;
    const randNumber = rand(1,99);
    protected $isNumber = false;
    protected $higher = true;

    function __construct($inputGuess) {
        $this->guess = $inputGuess;
    }

    public function getResult() {
        $this->numberChecker();

        if($this->higher == true) {
            $this->higher = "higher";
        } elseif($this->higher == false) {
            $this->higher = "lower";
        }

        if($this->isNumber == false) {
            return $this->guess . " is incorrect, " . "try guessing " . $this->higher;
        } elseif($this->isNumber == true) {
            return $this->guess . " is correct!";
        }
    }

    private function numberChecker() {
        if($this->guess < self::randNumber) {
            $this->higher = true;
            $this->isNumber = false;
        } elseif($this->guess > self::randNumber) {
            $this->higher = false;
            $this->isNumber = false;
        } elseif($this->guess == self::randNumber) {
            $this->higher = false;
            $this->isNumber = true;
        }
    }
}

if ( isset($_SERVER['QUERY_STRING']) ) {
    $inputString = $_SERVER['QUERY_STRING'];
    $inputGuess = intval($inputString);
}

$myGuess = new NumberGuess($inputGuess);
echo json_encode($myGuess->getResult());

有人可以向我解释一下如何使用 json 在类中生成随机数吗?

最佳答案

您可以使用 PHP rand()mt_rand()生成范围内随机数的函数。

rand() Syntax

int rand ( void )
#OR
int rand ( int $min , int $max )

mt_rand() Syntax

int mt_rand ( void )
#OR
int mt_rand ( int $min , int $max )

注意:您可以使用JavaScript Math.random()即时生成随机数的功能。或者您可以使用 Ajax 使用 PHP 生成随机数。

关于php - 在php类中生成一个随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43244407/

相关文章:

PHP » 单例 MySQL 连接

java - 在 Java 中访问 JSON 嵌套值的动态方式

java - 递归方法创建Json对象

javascript - tetxtbox 在复选框上启用/禁用使用 Javascript 选择/取消选择

PHP设计模式

php - 需要在 php 脚本中编写一个 mySQL 查询,它将随着每次提交 session 中用户输入的变化而自动变化

php - Jquery AJAX PHP数据返回

javascript - 我的 JSON 数组只能删除一个元素

python - 有人能解释一下 python 函数到底发生了什么吗?

python - 如何在 python 中将用户输入从一个类传递到另一个类?