带有PREG_MATCH的PHP SWITCH语句
我在switch语句中创建preg_Match()时遇到一些问题。
我要写入preg_match/oop/page/view/[Some-number]。
目前它的工作方式如下:
如果我在浏览器http://example.com/oop/page/view/1中运行,它会显示‘404页’。 当我运行某个地址时,例如http://example.com/oop/page/view/test或甚至/oop/测试它的运行第二种情况,但还不知道如何运行。我的正则表达式肯定有问题..
public function check(){
$url = filter_input(INPUT_GET, 'url');
switch ($url) {
case '':
echo 'HomePage';
break;
case preg_match('#^/oop/page/view/d+$#', $url):
echo $url;
break;
default:
echo '404 page';
break;
}
}
解决方案
您应该这样做:
switch (true) {
case preg_match(...):
我不记得PHP中的switch是严格的还是宽松的比较,但如果是严格的,只需在每个案例前面加一个!!
就可以将其转换为布尔值。
相关文章