【发布时间】:2019-06-04 12:18:39
【问题描述】:
有谁知道为什么 PHP 中的 for 循环没有按预期工作?请检查以下内容:
查看有关运营商的文档和谷歌:http://php.net/manual/en/language.operators.increment.php
<?php
$a = "Z";
$b = "AL";
echo $a."<br>".$b."<br>";
for ($x = $a; $x <= $b; $x++) {
echo "The number is: $x <br>";
}
while(true){
if($a == $b)break;
echo $a."<br>";
$a++;
}
?>
for 循环没有迭代,而while 循环是。预期的输出应该从 Z-AL 迭代,while 循环正在执行此操作,但 for 循环没有迭代。
for 循环应该遵循 Perl 的迭代 (http://php.net/manual/en/language.operators.increment.php),但显然说 AL 不大于 Z。
但是,当将这些字母转换为它们的数值时,for 循环将像处理整数一样工作。
【问题讨论】:
-
你不能增加一个 string 变量。
-
您的循环不会迭代,因为
Z不小于或等于AL。 -
var_dump("Z" <= "AL");输出false... -
@arkascha 当然可以。增加
"Z"并得到"AA"-- 但比较仍然作为字符串完成,因此条件失败。 -
你为什么要阅读 PERL 的文档?这是 PHP。