我目前正在编写一个函数,以便通过将URL扩展到不同的部分并使用我定义的字符串匹配这些部分来验证URL。这是我到目前为止使用的功能:
function validTnet($tnet_url) {
$tnet_2 = "defined2";
$tnet_3 = "defined3";
$tnet_5 = "defined5";
$tnet_7 = "";
if($exp_url[2] == $tnet_2) {
#show true, proceed to next validation
if($exp_url[3] == $tnet_3) {
#true, and next
if($exp_url[5] == $tnet_5) {
#true, and last
if($exp_url[7] == $tnet_7) {
#true, valid
}
}
}
} else {
echo "failed on tnet_2";
}
}
出于某种原因,我无法想到如何打破嵌套的if语句的代码(或搜索正确的术语)。
我想做的是检查网址的每个部分,从$tnet_2
开始,如果它未通过其中一项检查($tnet_2
,$tnet_3
,$tnet_5
或$tnet_7
),输出失败,并打破if语句。有没有一种简单的方法可以使用我已经拥有的一些代码来实现这一目标?
答案 0 :(得分:1)
$is_valid = true;
foreach (array(2, 3, 5, 7) as $i) {
if ($exp_url[$i] !== ${'tnet_'.$i}) {
$is_valid = false;
break;
}
}
如果在数组中定义这些值,则可以$tnet[$i]
:
$tnet = array(
2 => "defined2",
3 => "defined3",
5 => "defined5",
7 => ""
);
答案 1 :(得分:1)
合并所有if
条件
if(
$exp_url[2] == $tnet_2 &&
$exp_url[3] == $tnet_3 &&
$exp_url[5] == $tnet_5 &&
$exp_url[7] == $tnet_7
) {
//true, valid
} else {
echo "failed on tnet_2";
}