php – 如何替换嵌套的switch语句
发布时间:2020-12-13 17:19:30 所属栏目:PHP教程 来源:网络整理
导读:我被要求写一个小 PHP脚本,从一些下拉框中获取一些POSTed输入,这些输入提供了一些可选标准,最后,吐出一个或多个包含唯一代码的字符串变量. 变量名称的形式为$thingPlaceType,每个变量名称都是唯一的.下拉框允许选择: 一个“东西”或所有“东西”在一起 一个
我被要求写一个小
PHP脚本,从一些下拉框中获取一些POSTed输入,这些输入提供了一些可选标准,最后,吐出一个或多个包含唯一代码的字符串变量.
变量名称的形式为$thingPlaceType,每个变量名称都是唯一的.下拉框允许选择: >一个“东西”或所有“东西”在一起 我无法弄清楚如何选择这些代码而不依赖于我所做的嵌套switch语句 switch($_POST['thing']) { case "thing1": switch($_POST['place']) { case "place1": switch($_POST['type']) { case "type1": $output = $thing1Place1Type1; case "type2": $output = $thing1Place1Type2; case "alltypes": $output = $thing1Place1Type1.$thing1Place1Type2.$thing1PlaceType3; } case "place2": ... case "allplaces": ... } case "thing2": switch($_POST['place']) { case "place1": switch($_POST['type']) { case "type1": $output = $thing1Place1Type1; ... ... ... } 似乎代码变成了Arrow Anti-Pattern.我想我可能会使用多维数组做一些事情,或者可能是一个单独的数组,我将值与键匹配.但是我觉得那紧抓着稻草,必须有一些我不知道的东西.是时候将字符串转换为具有属性的正确对象了吗? 解决方法
如果你想将它们转换为对象..你可以创建它.
class Object { private $thing; private $place; private $type; public function __construct() { $this->thing = $_POST['thing']; $this->place = $_POST['place']; $this->type = $_POST['type']; $this->processThing($this->thing,$this->place,$this->type); } public function processThing($thing = false,$place = false,$type = false) { //noW that you have all the properties you just need just process it } } if(isset($_POST['thing']) && isset($_POST['place']) && isset($_POST['type'])) { $object = new Object(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |