2011-07-01 3 views
1

나는 현재1 if 문 내에서 2 개의 조건을 가질 수 있습니까?

elseif($_POST['aspam'] != 'fire'){ 
print "Is ice really hotter than fire?"; 
} 

PHP 내에서 어떤 종류의 OR 기능이 거기에 다음 코드 줄을? 만약 그렇다면 ...

$_POST['aspam'] != 'fire' OR !='Fire' 

아니면 대소 문자를 구분하지 않겠습니까? 잘하면이 말이 ...

답변

3

|| 또는 or (소문자) 연산자를 사용 strtolower($_POST['aspam'])!='fire'.

elseif($_POST['aspam'] != 'fire' || $_POST['aspam'] != 'Fire'){ 
    print "Is ice really hotter than fire?"; 
} 
3

확실히.

$_POST['aspam'] != 'fire' or $_POST['aspam'] !='Fire' 

각 조건은 별개임을 기억하십시오. or != 'Fire'이라고 말하면 자동으로 해당 단어가 or $_POST['aspam'] != 'Fire'으로 해석되지 않습니다.

그들은 logical operators입니다.

strtolower($_POST['aspam'] != 'fire' 
+0

그 간단한?! 훌륭해, 고마워요 – Liam

1

예 :

는 소문자를 비교합니다.

if (first condition || second condition){ 
your code 
} 

OR는 2 개의 파이프로 표시됩니다.

뭔가 더 : 또한 가질 수 있고 : 그래서

if(first condition && second condition){ 
Your code... 
} 

및 & &

1

이 논리 OR

$_POST['aspam'] != 'fire' || !='Fire' 

입니다으로 표시되며이는 대소입니다 무신경 (ToLower 기능)

,210
strtolower($_POST['aspam']) != 'fire' 
+0

고마워요 @ 조나단, strtolower가 입력 값에 상관없이 모든 값을 소문자로 만들 수 있습니까? – Liam

+0

http://us.php.net/manual/en/function.strtolower.php – webbiedave

+0

@Liam : 네, strlower 함수가하는 일입니다. 그래서 "Fire"또는 "Fire"는 "fire"의 출력을 갖습니다. http://php.net/manual/en/function.strtolower.php – Ray

1

2

PHP OR||로 만들어지고 AND&& 등으로 만든내가 있다면

if($_POST['aspam'] != 'fire' || $_POST['aspam'] != 'Fire') 

:이 같은 두 가지 조건을 수행 할 수 있습니다

if (strtolower($_POST['aspam']) != 'fire') 
3

:에

if (($_POST['aspam'] != 'fire') || ($_POST['aspam'] != 'Fire')) 

그러나 귀하의 경우에 더 나은 것 : 그래서 당신의 코드 예제처럼 보일 것이다 이 경우에 당신은 다음과 같이 할 것입니다 :

if(strtolower($_POST['aspam']) != 'fire') 
1

당신이 당신의 변수 경우의 검사가 영향을받지 확인하려면, 당신은 코드 아래 사용할 수 있습니다

if(strtolower($_POST['aspam'])!='fire') 
    echo "this is matching"; 
1

또는 대안은 대소 문자를 구분 제 값을하지 만들?

if (strtolower($_POST['aspam']) != 'fire'){ 

} 
2

는 PHP에서 서로 다른 논리 연산자가 있습니다.

"OR"두 개의 파이프에 사용하십시오. http://www.w3schools.com/PHP/php_operators.asp

+0

** 공식 문서에 링크하는 것이 더 좋습니다 ** http://php.net/manual/en/language.operators.logical.php –

1

예,이 가능하다 :

$_POST['aspam'] != 'fire' || !='Fire' 

여기에 모든 사업자와 링크입니다. 이 시도 :

if (strcasecmp($_POST['aspam'], 'fire') !== 0) { 
    print "Is ice really hotter than fire?"; 
} 

또는 목록 :

elseif($_POST['aspam'] != 'fire' || $_POST['aspam'] != 'Fire') 
0

당신은 경우를 구분하지 않는 문자열 비교를 사용할 수

if (!in_array($_POST['aspam'], array('Fire','fire')) { 
    ... 
0

여기에 짧은 옵션은 아마 stristr 다음과 같습니다

if (stristr($_POST["aspam"], "FIRE")) { 

I 대소 문자를 구별하지 않습니다. 고정 길이로 일치 시키려면 strcasecmp 또는 strncasecmp이 필요할 수도 있습니다. (그러나 나는 그것을 덜 읽을 수 있고 귀하의 경우에는 필요하지 않습니다.)

관련 문제