Wil*_*nes 5 php switch-statement strstr
我只是想不出代码.如果我想改变的语句是一个switch语句,我已经太多了,但我找不到逻辑.
目前我有:
if(strstr($var,'texttosearch'))
echo 'string contains texttosearch';
if(strstr($var,'texttosearch1'))
echo 'string contains texttosearch1';
if(strstr($var,'texttosearch2'))
echo 'string contains texttosearc2h';
//etc etc...
Run Code Online (Sandbox Code Playgroud)
但是如何在交换机中实现相同的目标呢?
Kin*_*nch 10
switch (true) {
case strstr($var,'texttosearch'):
echo 'string contains texttosearch';
break;
case strstr($var,'texttosearch1'):
echo 'string contains texttosearch1';
break;
case strstr($var,'texttosearch2'):
echo 'string contains texttosearc2h';
break;
}
Run Code Online (Sandbox Code Playgroud)
请注意,这与您自己的解决方案略有不同,因为switch-statement不会针对其他cases进行测试,如果之前已经匹配,但是因为您使用单独的ifs,而是如果if-else您的方式始终针对每种情况进行测试.
Sla*_*hin 10
我认为你无法实现这一点switch(比现在更优雅),因为它比较了值,但你只想比较一部分值.相反,你可以使用循环:
$patterns = array('texttosearch', 'texttosearch1', 'texttosearch2');
foreach ($patterns as $pattern) {
if (strstr($var, $pattern)) {
echo "String contains '$pattern'\n";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7538 次 |
| 最近记录: |