【发布时间】:2019-01-29 10:53:33
【问题描述】:
在过去的 3 个小时里,我一直在努力解决这个问题。
我生成一个随机数,0 - 36。
我还生成了一个以 2 为步长的数字 0-36 的数组(仅限非偶数)。
我对随机数和数组都做了var_dump,我可以看到数组中的匹配值,但是,我的if 语句不会返回true。
我也试过in_array,但没有奏效。我试过array_map,没有运气......我无休止地用谷歌搜索并尝试了我能想到的一切。什么给了?
$this->number = rand(0, 36);
$this->colorBlack = array(range(1, 36, 2));
foreach ($this->colorBlack as $this->color){
var_dump($this->color);
var_dump($this->number);
if ($this->color == $this->number){
echo 'yes';
var_dump($this->colorBlack);
}
}
当生成的随机数与数组中的值匹配时,我希望上述代码为return true,但事实并非如此。
Var 转储如下所示:
array(18) { [0]=> int(1) [1]=> int(3) [2]=> int(5) [3]=> int(7) [4]=> int(9) [5]=> int(11) [6]=> int(13) [7]=> int(15) [8]=> int(17) [9]=> int(19) [10]=> int(21) [11]=> int(23) [12]=> int(25) [13]=> int(27) [14]=> int(29) [15]=> int(31) [16]=> int(33) [17]=> int(35) } int(26)
【问题讨论】:
-
例如,您的 var 转储会产生什么?
-
没有一个
return声明,那么您究竟希望在这里“返回 true”什么呢? -
'Yes' 没有被回显——我不应该说“return true”。
-
$this->color是一个数组,$this->number是一个标量整数。将它们与==进行比较并期望在这里相等是没有意义的。 -
secure.php.net/manual/en/function.range.php
range()已经创建了一个数组
标签: php arrays oop if-statement foreach