기초적인 초보 질문 몇개 문의합니다.
본문
if문 조건들 사이에 && 와 || 를 쓰다가 언제가 부턴가 우연히 and, or 을 쓰는걸 봐서 해봤더니 정상 작동 되서 한동안 사용해 왔는데, 최근에 똑같은 조건문인데 &&는 되고 and는 안되던데,, and는 안정적이지 않은 건가요?
그리고 두번째로는 display:none; 와 hidden; 둘다 똑같이 트래픽은 잡아 먹는거죠?
display가 none이나 hidden 처리한 레이아웃 안에 이미지가 있다면 이미지를 불러오기는 하지만 보여지지만 않는거겠죠?
위 문제를 피하기위해 if문으로 트래픽 나오는 부분을 감싸버리면 조건 불충분시 트래픽에는 영향이 없는 게 맞는 건가요?
홈페이지 다 만들고 보니 여기저기 쓸데없는 파일들이 로드 되는 거 보고 수정중에 질문드립니다. 감사합니다.
답변 2
먼저 논리 AND 및 OR 연산을 위해 여러 언어에서 각각 사용되는 표준 연산자이지요 특히 and 키워드는 우선 순위가 낮다라는점 참고하시구요, 즉, 복잡한 표현식에서 괄호에 주의하지 않으면 예상대로 작동하지 않을 수 있다라는거죠.
그리고 none hidden 이과같은 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 둘 다 화면에 렌더링은 된 후에 숨겨집니다. 그래서 트래픽은 똑같이 잡아 먹습니다.
!-->