그렇지 않으면 PHP 문에서 AND / 또는 사용
그렇지 않으면 PHP 문에서 'AND / OR'를 사용합니까? 일 것이다 :
1) 그리고
if ($status = 'clear' AND $pRent == 0) {
mysql_query("UPDATE rent
SET dNo = '$id',
status = 'clear',
colour = '#3C0'
WHERE rent.id = $id");
}
2) 또는
if ($status = 'clear' OR $pRent == 0) {
mysql_query("UPDATE rent
SET dNo = '$id',
status = 'clear',
colour = '#3C0'
WHERE rent.id = $id");
}
예. 대답은‘예’입니다.
http://www.php.net/manual/en/language.operators.logical.php
하지만 두 가지 :
- 많은 프로그래머 선호
&&
하고||
대신and
하고or
같은 (우선 순위에 대한 안전)을 작동합니다. $status = 'clear'
아마 있어야$status == 'clear'
합니다.=
할당,==
비교입니다.
조금 늦었지만 중요하지 않습니다
. 질문은 "어떻게 사용합니까 ...?"입니다. 대답은 당신이 대답하고 대답합니다.
다른 질문은 "언제 사용하고 있습니까?"입니다. 대신 및 대신
사용
&&
합니다
.
AND
||
OR
$a = 1
$b = 3
지금,
if ($a == 1 && $b == 1) { TRUE } else { FALSE }
이 경우 결과는 B가 1이 아니기 때문에 "FALSE"입니다.
if ($a == 1 || $b == 1) { TRUE } else { FALSE }
B가 여전히 우리가 요구하는 값이 아니고 "TRUE"를 반환합니다. OR / ||를 사용하지 않고 TRUE를 반환하는 또 다른 방법이 있습니다. 그리고 그것은 XOR입니다
if ($a == 1 xor $b == 1) { TRUE } else { FALSE }
이 경우 변수 중 하나만 참이어야하지만 둘 다 참이면 결과는 거짓이됩니다.
이게 도움이 되길 계속 ...
더 많은 정보 :
http://www.php.net/manual/en/language.operators.logical.php
여기 답변에 일 부담과 오해의 소지가있는 댓글이 있고 부분적으로 잘못된 정보가 있습니다. 개선을 위해 노력하고 싶습니다.
첫째 , 일부 사람들이 지적했듯이 질문과 관련된 코드에 버그가 있습니다.
if ($status = 'clear' AND $pRent == 0)
다음과 같음 ( 첫 번째 부분 ==
대신에 주의 =
).
if ($status == 'clear' AND $pRent == 0)
이는 이 경우에는 동등한 기능
if ($status == 'clear' && $pRent == 0)
둘째 , 다음 연산자 ( and or && ||
)는 단락 연산자입니다. 즉, 첫 번째 표현에서 확실하게 답을 사용할 수 있습니다. 다시 말하지만 이는 이상적인 줄에는 중요하지 않지만하지만 연산자를 할당과 결합 할 때 매우 중요합니다.
셋째 째 , 사이의 진정한 차이 and or
와 결혼식&& ||
입니다 연산자 우선 순위
&& ||
할당 연산자 ( = += -= *= **= /= .= %= &= |= ^= <<= >>=
) 보다 우선 순위가 높고 할당 연산자보다 우선 순위 and or
가 낮다는 것입니다. 중요한 할당과 라우팅 평가의 사용을 결합한 문장에서 어떤 것을 선택하는 것이 중요합니다.
논리 연산자에 대한 PHP 페이지의 수정 된 예 :
$e = false || true;
연산자 우선 순위가보다 높기 때문에 true
해당 값을 평가 하고에 할당 기본적으로 다음과 같이 평가됩니다.$e
||
=
$e = (false || true);
하나
$e = false or true;
할당 할 false
로 $e
(및 그 수행 or
작업 및 평가 true
) 때문에 =
보다 운영자 우선 순위가 or
필수적 같이 평가 :
($e = false) or true;
이 모호함이 존재한다는 사실은 많은 프로그래머가 항상 사용 && ||
하고 C와 같은 언어에서 기대하는 것처럼 모든 것이 명확하게 작동합니다. 논리 연산을 먼저 한 다음 할당.
Perl과 같은 일부 언어는 다음과 유사한 형식으로 이러한 종류의 구조를 자주 사용합니다.
$connection = database_connect($parameters) or die("Unable to connect to DB.");
이것은 이론적으로 데이터베이스 연결을에 할당 $connection
하거나 실패한 경우 (여기서 함수가이 false
경우 evalue를 반환한다고 가정 하고 있음) 오류 메시지와 함께 스크립트를 종료합니다. 단락으로 인해 데이터베이스 연결이 성공하면는 die()
평가되지 않습니다.
이 구조를 허용하는 일부 언어는 다른 방식으로 유사성을 제거하기 위해 조건부 / 논리 문 (예 : Python)에서 할당을 금지합니다.
PHP는 두 가지를 모두 허용했기 때문에 두 가지 옵션에 대해 한 번 배우고 원하는 방식으로 코딩하면되지만 어떤 식 으로든 일관성이 있기를 바랍니다.
의심 스러울 때마다 모든 모호함을 제거하는 추가 괄호 세트를 넣으십시오. 이들은 항상 동일합니다.
$e = (false || true);
$e = (false or true);
그 모든 지식으로 무장 and or
했기 때문에 코드를 더 읽기 쉽게 만들어서 사용하는 것을 선호합니다 . 할당과 논리적 평가를 결합하지 않는 규칙이 있습니다. 그러나 그 시점에서 그것은 단지 선호 사항이며 일관성은 당신이 선택하는 편보다 훨씬 더 중요합니다.
여기에 2 개의 문제가 있습니다.
==
비교를 위해 사용 합니다.=
할당을 위해 사용했습니다 .사용
&&
"과"및 위해||
에 대한 "또는".and
및or
작동하지만 그들은 틀에 얽매이지입니다 것입니다.
AND입니다 &&
및 OR입니다 ||
C.처럼
AND
그리고 JavaScript 또는 기타 C 스타일 구문 언어에서 와 같이 및 에 OR
대한 구문 설탕입니다 .&&
||
그것은 표시 AND
및 OR
낮은 우선 순위가 자신의 C 스타일의 제품보다 있습니다.
그리고 당신을 위해
if ($status = 'clear' && $pRent == 0) {
mysql_query("UPDATE rent SET dNo = '$id', status = 'clear', colour = '#3C0' WHERE rent.id = $id");
}
또는 사용
if ($status = 'clear' || $pRent == 0) {
mysql_query("UPDATE rent SET dNo = '$id', status = 'clear', colour = '#3C0' WHERE rent.id = $id");
}
여기에 약간의 혼란이 있다고 생각합니다. :)하지만 아무도없는 것 같습니다 ..
이 시나리오에서 어떤 것을 사용할 것인지 묻고 있습니까? 그렇다면 그리고 정답 입니다.
운영자가 어떻게 일하고 있는지 묻는다면
PHP에서 AND, && 및 OR, || 같은 방식으로 작동합니다. 프로그래밍에 익숙하지 않고 PHP가 첫 번째 언어 중 하나라면 AND 및 OR를 사용하는 것이 좋습니다. 가독성을 높이고 다시 확인할 때 혼란을 줄이기 때문입니다. 하지만 이미 다른 언어에 익숙하다면 &&와 || 연산자.
<?php
$val1 = rand(1,4);
$val2=rand(1,4);
if ($pars[$last0] == "reviews" && $pars[$last] > 0) {
echo widget("Bootstrap Theme - Member Profile - Read Review",'',$w[website_id],$w);
} else { ?>
<div class="w100">
<div style="background:transparent!important;" class="w100 well" id="postreview">
<?php
$_GET[user_id] = $user[user_id];
$_GET[member_id] = $_COOKIE[userid];
$_GET[subaction] = "savereview";
$_GET[ip] = $_SERVER[REMOTE_ADDR];
$_GET[httpr] = $_ENV[requesturl];
echo form("member_review","",$w[website_id],$w);?>
</div></div>
ive는 'else'를 '&&'로 대체 했으므로 둘 다 배치됩니다 ... argh
"AND"는 내 PHP 코드에서 작동하지 않습니다.
서버 버전일까요?
"&&"가 잘 작동합니다.
참고 URL : https://stackoverflow.com/questions/4405795/using-and-or-in-if-else-php-statement
'ProgramingTip' 카테고리의 다른 글
302 상대 URL로 리디렉션이 유효하거나 유효하지 않습니까? (0) | 2020.11.13 |
---|---|
메모장 ++에서 선택한 텍스트를 수동으로 강조 표시 (0) | 2020.11.13 |
맏뭏하지 않는 배포는 문서를 수정하지 않습니다! (0) | 2020.11.13 |
부트 유효성 테이블 행을 클릭 가능하게 만들려면 어떻게하면? (0) | 2020.11.13 |
오류 : Windows에서 파일 경로가 너무 깁니다. 240 자색으로 유지하십시오. (0) | 2020.11.12 |