Web服务的PHP验证

Web服务的PHP验证,php,web-services,web,yii,Php,Web Services,Web,Yii,我对使用php编写web服务的条件有点困惑。我有一个字段类型,应该是w或d,没有其他内容w表示周一、周二至周五等工作日,d表示2017-02-15等日期 基本上我想要的是 类型=w 然后 天=星期一//可以是星期一到星期五之间的任何时间 那个么,我将如何将天的验证设置为应该在周一到周五之间的字段,若用户输入任何其他内容,它将给出错误 类似地,如果类型=d那么天=2017-02-15,那么如果类型是d,天应该是类似2017-02-15的日期,它不应该是星期一或任何其他字符或数字,它应该是日期 这就

我对使用php编写web服务的条件有点困惑。我有一个字段
类型
,应该是
w
d
,没有其他内容
w
表示周一、周二至周五等工作日,
d
表示2017-02-15等日期

基本上我想要的是

类型
=
w
然后
=
星期一
//可以是星期一到星期五之间的任何时间

那个么,我将如何将
天的验证设置为应该在周一到周五之间的字段,若用户输入任何其他内容,它将给出错误

类似地,如果
类型
=
d
那么
=
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;
    }
}
你可以用

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;
         }
}

isset
返回布尔值,因此无法将其与字符串进行比较。您必须单独进行比较。那么我将如何检查用户是否输入了任何内容?用户可以将其保留为空,我不希望保存空值@Darklynxno先生,您可以保留
isset
,但是您必须单独检查值:
如果(isset($this->inputs['day\u type')和&$this->inputs['day\u type']=='w')
好的,那么下一个条件是什么,如果他输入
w
那么在
他输入一个日期而不是像周一这样的一天,我将如何检查?如果他使用
w
作为
day\u类型
@mrdarklynxy,则必须输入天数而不是日期。您可以检查输入字符串是否包含任何数字。