我对使用php编写Web服务的条件感到困惑。我有一个字段type
,应该是w
或d
,没有别的。 w
表示工作日,例如周一,周二至周五,d
适用于2017-02-15
等日期
基本上我想要的是
type
= w
然后
days
= Monday
//周一至周五可以是任何内容。
那么我将如何在星期一到星期五之间对days
字段进行验证呢?如果用户输入其他内容,应该给出错误。?
同样,如果type
= d
,那么days
= 2017-02-15
因此,如果类型为d且日期应为2017-02-15
之类的日期,那么它不应该是星期一或任何其他字符或数字,它应该是一个日期。
这是我试过的......
if (isset($this->inputs['day_type']) == 'w') {
// w = Monday, Tuesday etc
if (isset($this->inputs['days']) && !empty($this->inputs['days'])) {
$campaign->days = $campaign->days;
}
} elseif (isset($this->inputs['day_type']) == 'd') {
if (isset($this->inputs['dates']) && !empty($this->inputs['dates'])) {
$seperatingDates = explode(";", $this->inputs['dates']);
$campaign->days = $seperatingDates;
}
}
答案 0 :(得分:-1)
您可以使用
if (isset($this->inputs['day_type']) && $this->inputs['day_type'] == 'w') {
// w = Monday, Tuesday etc
if (isset($this->inputs['days']) && !empty($this->inputs['days'])) {
$campaign->days = $campaign->days;
}
}
elseif (isset($this->inputs['day_type']) && $this->inputs['day_type'] == 'd') {
if (isset($this->inputs['dates']) && !empty($this->inputs['dates'])) {
$seperatingDates = explode(";", $this->inputs['dates']);
$campaign->days = $seperatingDates;
}
}
说明:
如果设置了值,则 isset(value)
返回true
,否则返回false
。
所以在这里你要检查post值(day_type)是否存在且等于w
,然后执行第一个语句块。如果设置了value(day_type)并且它等于d
,则执行第二个语句块。
更新:
此外,您只需使用switch..case
即可:
$day_type = $this->inputs['day_type'];
switch($day_type)
{
case 'w' :
if (isset($this->inputs['days']) && !empty($this->inputs['days'])) {
$campaign->days = $campaign->days;
}
break;
case 'd' :
if (isset($this->inputs['dates']) && !empty($this->inputs['dates'])) {
$seperatingDates = explode(";", $this->inputs['dates']);
$campaign->days = $seperatingDates;
}
}