2017-02-15 77 views
0

我对使用php编写web服务的条件有些困惑。我有一个字段type,应该是wd,没有别的。 w对于像周一,周二工作日至周五d是像2017-02-15针对webservice的PHP验证

日期我想基本上是什么,如果

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

'isset'返回一个布尔值,因此,你不能把它比作一个字符串。你必须单独做比较。 – MrDarkLynx

+0

那么我将如何检查用户是否输入了任何内容?用户可能会留空,我不希望空值被保存。 @MrDarkLynx –

+0

不,你可以离开'isset',但你必须单独检查值:'if(isset($ this-> inputs ['day_type'])&& $ this-> inputs ['day_type']] =='w')' – MrDarkLynx

回答

-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

所以在这里你要检查是否存在帖子值(day_type)并且它等于w,然后执行第一个语句块。如果value(day_type)被设置并且等于d,则执行第二个语句块。

UPDATE:

你也可以简单地使用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; 
     } 
} 
+0

谨慎解释downvote? – mrid