기초적인 초보 질문 몇개 문의합니다. 채택완료
if문 조건들 사이에 && 와 || 를 쓰다가 언제가 부턴가 우연히 and, or 을 쓰는걸 봐서 해봤더니 정상 작동 되서 한동안 사용해 왔는데, 최근에 똑같은 조건문인데 &&는 되고 and는 안되던데,, and는 안정적이지 않은 건가요?
그리고 두번째로는 display:none; 와 hidden; 둘다 똑같이 트래픽은 잡아 먹는거죠?
display가 none이나 hidden 처리한 레이아웃 안에 이미지가 있다면 이미지를 불러오기는 하지만 보여지지만 않는거겠죠?
위 문제를 피하기위해 if문으로 트래픽 나오는 부분을 감싸버리면 조건 불충분시 트래픽에는 영향이 없는 게 맞는 건가요?
홈페이지 다 만들고 보니 여기저기 쓸데없는 파일들이 로드 되는 거 보고 수정중에 질문드립니다. 감사합니다.
답변 2개
먼저 논리 AND 및 OR 연산을 위해 여러 언어에서 각각 사용되는 표준 연산자이지요 특히 and 키워드는 우선 순위가 낮다라는점 참고하시구요, 즉, 복잡한 표현식에서 괄호에 주의하지 않으면 예상대로 작동하지 않을 수 있다라는거죠.
그리고 none hidden 이과같은 css에서 요소를 숨김거나 동작을 막는데 주로 쓰지요 . 이는 트랙픽과 아무런 연관이없습니다. 그렇면 느림의 미학으로 찬찬히 화이팅~응원합니다.
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
$a = 'aa';
$b = 'bb';
$result1 = $a && $b ? '참' : '거짓';
echo $result1;
echo '
';
$result1_1 = $a && $b and $c ? '참' : '거짓';
echo $result1_1;
echo '
';
$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 둘 다 화면에 렌더링은 된 후에 숨겨집니다. 그래서 트래픽은 똑같이 잡아 먹습니다.
답변에 대한 댓글 1개
링크 들어가보니, 잘 요약이 된거 같은데 처음부터 공부좀 하고 시작할 걸, 괜히 땜빵식으로 하다 보니,
나중에 더 고생하는 느낌입니다.
그런데 말씀중에 그냥 지나가는 생각인데, && 과 or이 우선순위를 필요로하는 조건문상에서도 사용이 가능한가도 궁금해지긴 하네요. if ((A && B) || (C && D)) 이거를 if (A && B or C && D) 이렇게 쓸데없는 생각이;;; 아뭏든 바쁜 시간 내주셔서 감사하고 좋은 하루 되세요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
일단은 정상 작동되는 조건문에서는 문제 없겠죠?
hidden, none는 말씀들어보니, css라서 디자인 측면만 고려되겠네요. 바쁜 시간내주셔서 감사합니다.