php несколько, если условия - PullRequest
0 голосов
/ 27 января 2011

когда я пытаюсь отфильтровать все эти параметры, php входит только в первые условия условия, игнорируя все остальные условия.

if($t_red<0){
    $t_red=0;
}

else if($t_red>256){
    $t_red=255;
}

else if($t_green<0){
    $t_red=0;
}

else if($t_green>256){
    $t_red=255;
}

if($t_blue<0){
    $t_red=0;
}

if($t_blue>256){
    $t_red=255;
}

if($t_red<0){
    $t_red=0;
}

Ответы [ 5 ]

7 голосов
/ 27 января 2011

Вероятно, лучше всего подходит, если проходит через функцию фильтрации.

function setParam($param) {
  if($param < 0) {
    $param = 0;
  } elseif($param > 256) {
    $param = 255;
  }

  return $param;
}

$t_green = setParam($t_green);
$t_red = setParam($t_red);
$t_blue = setParam($t_blue);

Вы также можете использовать переход по ссылке при необходимости.

1 голос
/ 27 января 2011

Непонятно, что вы пытаетесь сделать, но я думаю , что вы хотели бы удалить else до третьего if оператора и добавить else до шестого if заявление.

0 голосов
/ 27 января 2011
if($t_red < 0)
{
    $t_red = 0;
}
else if($t_red > 255) //Original won't catch it if it is == to 256, have to do either >= 256 or > 255
{
    $t_red = 255;
}

if($t_green < 0)
{
    $t_green = 0;
}
else if($t_green > 255)
{
    $t_green = 255;
}

if($t_blue < 0)
{
    $t_blue = 0;
}
else if($t_blue > 255)
{
    $t_blue = 255;
}

Ответ Эндрю Санда - лучший, но я исправил тот факт, что он пропустил бы исправление значения, если бы оно было от == до 256, которое не было бы поймано просто $var > 256, и, таким образом,быть ошибочным, если значение должно быть между 0 и 255.

0 голосов
/ 27 января 2011

успешно выполненное условие оператора if (или после else if) будет игнорировать все остальные операторы if / else, которые непосредственно следуют за ним, но впоследствии выполняются операторы if - это можно проверить, добавив оператор echo к каждому. Может быть, это связано с тем, что все ваши переменные назначены для $ t_red, поэтому никаких действий с $ t_green или $ t_blue не предпринимается?

0 голосов
/ 27 января 2011
$t_red=$t_red<0?0;$t_red;
$t_red=$t_red>=256?255;$t_red;


//are you sure you're modifying t_red here? and not t_green?
$t_red=$t_green<0?0;$t_red;
$t_red=$t_green>=256?255;$t_red;

//are you sure you're modifying t_red here? and not t_blue?
$t_red=$t_blue<0?0;$t_red;
$t_red=$t_blue>=256?255;$t_red;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...