这可能吗?
$d=date("D");
...
else if ($d=='(Thu|Fri|Sat)') {
我可以在一周的某一天工作。
if ($d=='Wed') {
由于
答案 0 :(得分:3)
只需使用in_array()
if (in_array($d, array("Thu", "Fri", "Sat"))) {
}
答案 1 :(得分:2)
为什么不能使用or
或||
?
else if ($d=='Thu' || $d=='Fri' || $d=='Sat') {
如果您不想坚持简单,请使用preg_replace() [docs]
preg_match('^(Thu|Fri|Sat)$', $yourtext, $matches, PREG_OFFSET_CAPTURE);
if(count($matches)) {
/// found
}
答案 2 :(得分:2)
您可以使用OR运算符:
else if ($d=='Thu' || $d=='Fri' || $d=='Sat') {
答案 3 :(得分:2)
没有。根据您的需要,in_array()
是最佳选择。
if(in_array($d, array('Thu', 'Fri', 'Sat'))
// do something if any case is true
如果您想要更多控制权,switch
and case
非常方便,可以让您更好地控制不同情况。
$d = date('D');
switch($d) {
case 'Thu':
case 'Fri':
case 'Sat':
// do something for Thu, Fri, or Sat
break;
case 'Mon':
// do something only for Mon
case 'Tue':
// do something for Mon or Tue.
break;
}
如果满足任何或所有条件,第一组案例将应用以下代码(直至break
)。
如果Mon
为真,则第二组将在案例Tue
和Mon
之间应用代码,如果为真,则继续Tue
。
switch
和case
非常有用,特别是在您想要真正控制的情况下。
答案 4 :(得分:2)
$d == '(Thu|Fri|Sat)'
仅在$d
与该字符串完全匹配时匹配。
你可以:
preg_match('/^(Thu|Fri|Sat)$/', $d)
,in_array($d, array( 'Thu', 'Fri', 'Sat' ))
或if($d == 'Thu' || $d == 'Fri' || $d == 'Sat');
答案 5 :(得分:1)
尝试
if(in_array($d, array('Thu', 'Fri', 'etc'))){
}
或者使用||
if($d == 'Thu' || $d == 'Fri' || etc)