【问题标题】:Having problems with php rand function [duplicate]php rand函数有问题[重复]
【发布时间】:2012-02-05 04:38:24
【问题描述】:

我觉得我做的非常非常错误.....

我知道我用 rand($a,$b) 做错了,但我发现在从 C++ 转移到 PHP 时很难隔离

这是相关的源代码:

<?php
                    $r = rand(1,7);
                    if ($r = 1){
                    echo '<p id="quote">a</p>';}
                    if ($r = 2){
                    echo '<p id="quote">b"</p>';}
                    if ($r = 3){
                    echo '<p id="quote">c</p>';}
                    if ($r = 4){
                    echo '<p id="quote">d</p>';}
                    if ($r = 5){
                    echo '<p id="quote">e</p>';}
                    if ($r = 6){
                    echo '<p id="quote">f</p>';}
                    if ($r = 7){
                    echo '<p id="quote">g</p>';}
                ?>

【问题讨论】:

  • 你用等号做错了。
  • 使用mt_rand()== 而不是=。单=是赋值运算符,双==是比较
  • 避免犯这些错误的一种方法是让条件切换位置,所以你可以说($car == "blue"),而不是("blue" == $car)。如果您打错字并执行("blue" = $car),这将导致解析器抱怨,因为您会尝试为文字赋值。这通常被称为Yoda conditions,因为您的字面意思是“如果蓝色是汽车”而不是“如果汽车是蓝色”。

标签: php


【解决方案1】:

整个代码块可以更简单地写成:

<?php
    $r = rand(0,6);
    echo '<p id="quote">'.chr(ord('a')+$r).'</p>';
?>

编辑:顺便说一句,你做错了什么是在比较中使用= 而不是==

【讨论】:

    【解决方案2】:

    您每次都在分配 $r 的值...

    应该是:

    <?php
                        $r = rand(1,7);
                        if ($r == 1){
                        echo '<p id="quote">a</p>';}
                        if ($r == 2){
                        echo '<p id="quote">b"</p>';}
                        if ($r == 3){
                        echo '<p id="quote">c</p>';}
                        if ($r == 4){
                        echo '<p id="quote">d</p>';}
                        if ($r == 5){
                        echo '<p id="quote">e</p>';}
                        if ($r == 6){
                        echo '<p id="quote">f</p>';}
                        if ($r == 7){
                        echo '<p id="quote">g</p>';}
                    ?>
    

    【讨论】:

      【解决方案3】:
      if ($r == 7)
      

      总是双等号

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-17
        • 1970-01-01
        • 2010-11-14
        • 1970-01-01
        • 1970-01-01
        • 2019-07-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多