【发布时间】: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