PHP IF с несколькими днями недели - PullRequest
0 голосов
/ 10 марта 2012

Возможно ли это?

$d=date("D");
...
else if ($d=='(Thu|Fri|Sat)') {

Я могу работать один день недели.

if ($d=='Wed') {

Спасибо

Ответы [ 6 ]

3 голосов
/ 10 марта 2012

Просто используйте in_array()

if (in_array($d, array("Thu", "Fri", "Sat"))) {

}
2 голосов
/ 10 марта 2012

$d == '(Thu|Fri|Sat)' будет соответствовать, только если $d соответствует этой точной строке.

Вы можете:

  • Использовать регулярное выражение : preg_match('/^(Thu|Fri|Sat)$/', $d),
  • Массив значений : in_array($d, array( 'Thu', 'Fri', 'Sat' )) или
  • Несколько операторов if: if($d == 'Thu' || $d == 'Fri' || $d == 'Sat');
  • Использовать переключатель / case структура
2 голосов
/ 10 марта 2012

Нет.Для того, что вы хотите, in_array() является лучшим выбором.

if(in_array($d, array('Thu', 'Fri', 'Sat'))
  // do something if any case is true

Если вы хотите больше контроля, switch и 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 могутбыть очень полезным, особенно здесь, если вы хотите реального контроля.

2 голосов
/ 10 марта 2012

Вы можете использовать оператор ИЛИ:

else if ($d=='Thu' || $d=='Fri' || $d=='Sat') {
2 голосов
/ 10 марта 2012

Почему вы не можете использовать or или ||?

else if ($d=='Thu' || $d=='Fri' || $d=='Sat') {

Если вы не хотите придерживаться простоты, используйте preg_replace () [документы]

preg_match('^(Thu|Fri|Sat)$', $yourtext, $matches, PREG_OFFSET_CAPTURE);
if(count($matches)) {
    /// found
}
1 голос
/ 10 марта 2012

Попробуйте

if(in_array($d, array('Thu', 'Fri', 'etc'))){
}

Или с ||

if($d == 'Thu' || $d == 'Fri' || etc)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...