清理PHP

清理PHP,php,function,if-statement,Php,Function,If Statement,还有什么我可以清理的吗 if($class == 2 AND $posts >=1){$showpost ="1";} else {$showpost ="$posts"; if($class == 3 AND $posts >=2){$showpost ="2";} else {$showpost ="$posts"; if($class == 4 AND $posts >=3){$showpost ="3";} else {$showpost ="$posts"; if($

还有什么我可以清理的吗

if($class == 2 AND $posts >=1){$showpost ="1";} else {$showpost ="$posts";
if($class == 3 AND $posts >=2){$showpost ="2";} else {$showpost ="$posts";
if($class == 4 AND $posts >=3){$showpost ="3";} else {$showpost ="$posts";
if($class == 5 AND $posts >=4){$showpost ="4";} else {$showpost ="$posts";
if($class == 6 AND $posts >=5){$showpost ="5";} else {$showpost ="$posts";
if($class == 7 AND $posts >=6){$showpost ="6";} else {$showpost ="$posts";
}}}}}}

因为我不希望最后有}。

您可以剥离所有
$showpost=“$posts”语句(最后一个除外):

if ($class == 2 AND $posts >=1) {
    $showpost = "1";
} else if ($class == 3 AND $posts >=2) {
    $showpost = "2";
} else if ($class == 4 AND $posts >=3) {
    $showpost = "3";
} else if ($class == 5 AND $posts >=4) {
    $showpost = "4";
} else if ($class == 6 AND $posts >=5) {
    $showpost = "5";
} else if ($class == 7 AND $posts >=6) {
    $showpost = "6";
} else {
    $showpost ="$posts";
}
甚至可以总结为:

if ($class >= 2 && $class <= 7 && $posts >= ($class - 1)) {
    $showposts = $class - 1;
} else {
    $showposts = $posts;
}
如果($class>=2&&$class=($class-1)){
$showposts=$class-1;
}否则{
$showposts=$posts;
}

你可以用这个,虽然不好,但可以用

if($posts >= ($class - 1) AND $class >= 2 AND $class < 8) { $showpost = $class - 1; }
else { $showpost = $posts; }
如果($posts>=($class-1)和$class>=2和$class<8){$showpost=$class-1;}
else{$showpost=$posts;}
这与原始代码中的逻辑相匹配——这只是查看模式的问题

如果您需要$showpost作为字符串(很可能您不需要),可以按如下方式将其转换为字符串:

$showpost = (string)$showpost;

做一个决定。当“switch”真正有意义时,不要避免使用它。

在示例代码中,变量以字符串结尾,因此需要使用strval使其类似。@joey:$post在示例中的每个if语句中都必须等于或大于($class-1)$类必须大于1,小于8。把这三个需求放在一起,你就得到了martin的代码。这个解决方案可行,但你能解释一下吗,因为它对我来说毫无意义。
($class>=2)&&($class=$class-1)
-检查以确保if语句的第二部分也为真<代码>$showpost=$class-1-执行适用的if语句体将执行的操作<代码>$showpost=$posts-如果if语句都不正确,会发生什么。真的谢谢。这很有帮助。您还可以删除不必要的引号,如$showpost=“$posts”;和$showpost=“1”;谢谢你的总结版本。
 if (
     ($class >= 2) && ($class <= 7) // Check $class is between 2 and 7 inclusive

     && ($posts >= $class - 1)) // Check $posts >= $class -1
                                // so if $class is 4 this checks if $posts >= 3
$showpost = (string)$showpost;