我最近创建了一个只包含变量的站点,并根据各种可能的值对其进行检查并给出了适当的响应。该程序使用了很多else if
语句。寻找更好的方法来重复检查变量
我确信有一个更好的方法来做到这一点,但不知道要使用什么。我仍然在学习PHP。
这里的源代码给你一个更好的主意:
http://github.com/r3morse/isitup/blob/a7a972bcf125d1f058a44406a467438d46aa4b16/functions.php
我最近创建了一个只包含变量的站点,并根据各种可能的值对其进行检查并给出了适当的响应。该程序使用了很多else if
语句。寻找更好的方法来重复检查变量
我确信有一个更好的方法来做到这一点,但不知道要使用什么。我仍然在学习PHP。
这里的源代码给你一个更好的主意:
http://github.com/r3morse/isitup/blob/a7a972bcf125d1f058a44406a467438d46aa4b16/functions.php
如果每个代码需要不同的操作,我不认为你可以伪装的else..if结构..
你可以使用一个开关
switch($code){
case "200":
//then you code
break;
case "401":
//other code
break;
}
等等..但我不认为你会得到相关的东西..
其他方式可以将代码存储在数组中,如$ code => $ message .. 索引,但仅适用于您为每个代码打印某些内容的情况。
另一种可能性是定义一个适当的动作和分派的对象。
像...
<?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;
?>
并没有真正让你的情况硬朗感。
谢谢大家,它看起来就像现在这样说。 – 2009-04-09 19:17:38