기초적인 초보 질문 몇개 문의합니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
기초적인 초보 질문 몇개 문의합니다.

QA

기초적인 초보 질문 몇개 문의합니다.

본문

if문 조건들 사이에 && 와 || 를 쓰다가 언제가 부턴가 우연히 and, or 을 쓰는걸 봐서 해봤더니 정상 작동 되서 한동안 사용해 왔는데, 최근에 똑같은 조건문인데 &&는 되고 and는 안되던데,,  and는 안정적이지 않은 건가요?

 

그리고 두번째로는 display:none; 와 hidden; 둘다 똑같이 트래픽은 잡아 먹는거죠?

 

display가 none이나 hidden 처리한 레이아웃 안에 이미지가 있다면 이미지를 불러오기는 하지만 보여지지만 않는거겠죠?

 

위 문제를 피하기위해 if문으로 트래픽 나오는 부분을 감싸버리면 조건 불충분시 트래픽에는 영향이 없는 게 맞는 건가요?

 

홈페이지 다 만들고 보니 여기저기 쓸데없는 파일들이 로드 되는 거 보고 수정중에 질문드립니다. 감사합니다.

이 질문에 댓글 쓰기 :

답변 2

먼저 논리 AND 및 OR 연산을 위해 여러 언어에서 각각 사용되는 표준 연산자이지요 특히 and 키워드는 우선 순위가 낮다라는점 참고하시구요,  즉, 복잡한 표현식에서 괄호에 주의하지 않으면 예상대로 작동하지 않을 수 있다라는거죠.

그리고 none hidden 이과같은 css에서 요소를 숨김거나 동작을 막는데 주로 쓰지요 . 이는 트랙픽과 아무런 연관이없습니다.  그렇면 느림의 미학으로 찬찬히 화이팅~응원합니다.

저는 단순히 표현의 차이인 줄 알았는데, 그게 아니군요. shift누르기 귀찮아서 and를 썼는데;;
일단은 정상 작동되는 조건문에서는 문제 없겠죠?
hidden, none는 말씀들어보니, css라서 디자인 측면만 고려되겠네요. 바쁜 시간내주셔서 감사합니다.


$a = 'aa';
$b = 'bb';
$result1 = $a && $b ? '참' : '거짓';
echo $result1;
echo '<br>';
$result1_1 = $a && $b and $c ? '참' : '거짓';
echo $result1_1;
echo '<br>';
$result2 = $a and $b ? '참' : '거짓';
echo $result2;

적절한 예일지 모르겠지만 위 코드를 실행해 보시면

$result1은 참

$result1_1은 1(true)

$result2는 aa

이렇게 나옵니다.

https://www.php.net/manual/en/language.operators.precedence.php

연산자 우선 순위 때문인데, 위 링크에서 Operator Precedence라고 된 표를 보시면 됩니다. 위에서 아래로 내려갈수록 우선 순위에서 밀립니다.

&& > = > and 연산자는 더 밑에 있습니다(> 이거는 연산자가 아니라 누가 더 높은지 나타낸 것입니다).

 

$result1은 우선 순위에 의해서 && 이 구문이 정상적으로 실행이 되어서 결과가 = 연산자에 의해서 변수에 할당되고 && 연산자에 의한 결과가(참) 표시됩니다.

$result1_1의 경우는 일부러 && and 두 가지를 섞었는데 and의 경우 우선 순위에서 =에게 밀려 무시되고  $result1_1에는 $a && $b의 결과인 true(혹은 1)가 나옵니다.

$result2의 경우는 $result2 = $a가 먼저 실행이 되고 뒤는 다 무시됩니다.

참고로 삼항 연산자(? :)도 =보다 우선 순위가 높습니다.

설명이 좀 난잡하고 틀린 부분이 있을 수도 있습니다.

이상한 부분은 반드시 검색을 해보세요.

 

display: none, visibility: hidden 둘 다 화면에 렌더링은 된 후에 숨겨집니다. 그래서 트래픽은 똑같이 잡아 먹습니다.

어우.. 우문의 현답을 넘어서는 설명글이시네요;;
링크 들어가보니, 잘 요약이 된거 같은데 처음부터 공부좀 하고 시작할 걸, 괜히 땜빵식으로 하다 보니, 

나중에 더 고생하는 느낌입니다.

그런데 말씀중에 그냥 지나가는 생각인데, && 과 or이 우선순위를 필요로하는 조건문상에서도 사용이 가능한가도 궁금해지긴 하네요. if ((A && B) || (C && D))  이거를 if (A && B or C && D) 이렇게 쓸데없는 생각이;;; 아뭏든 바쁜 시간 내주셔서 감사하고 좋은 하루 되세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 126,530 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT