我最近创建了一个只有一个变量的网站,并根据各种可能的值进行检查并给出适当的响应。该程序使用了大量else if
语句。
我确信有更好的方法可以做到这一点,但不确定要使用什么。我还在学习PHP。
以下是为您提供更好主意的源代码:
http://github.com/r3morse/isitup/blob/a7a972bcf125d1f058a44406a467438d46aa4b16/functions.php
答案 0 :(得分:5)
可能切换就是你所追求的,它等同于if ... else if ....。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果每个代码都需要不同的操作,我不认为你可以伪装else..if结构..
您可以使用开关
switch($code){
case "200":
//then you code
break;
case "401":
//other code
break;
}
等等..但我不认为你会获得相关的东西..
其他方式可以存储数组内的代码,索引类似于$ code => $消息.. 但只有你只是为每个代码打印一些东西。
答案 3 :(得分:0)
另一种可能性是为适当的行动和派遣定义一个对象。
喜欢......
<?php
class Dispatcher {
public function action_404($code) {
return 'foo bar ' . $code;
}
public function action_200($code) {
return 'far boo ' . $code;
}
public function action_301($code) {
return $this->action_200($code);
}
/* and so on */
public function unknownAction($code) {
return 'don\'t know ' . $code;
}
}
$code = (int)$_REQUEST['code'];
$methodName = 'action_' . $code;
$dispatcher = new Dispatcher();
if (method_exists($dispatcher, $methodName)) {
$result = $dispatcher->$methodName($code);
} else {
$result = $dispatcher->unknownAction($code);
}
echo $result;
?>
在你的情况下,确实没有意义。