Cond 사용법이랑 문법에 관해서 몇가지 궁금합니다.
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.4 |
cond="$comment->get('member_srl') == 4"
위처럼 cond를 사용할 때 member_srl 값으로 4가 아닌 다른 srl값도 몇개 더 넣기 위해선
cond="$comment->get('member_srl') == 4" || cond="$comment->get('member_srl') == 100246"
이렇게 만들어 줘야 하나요? 좀 더 간단한 방법이 없는지 궁금합니다.
그리고 추가로 '4'인것과 그냥 4인것과 어떤 차이가 있나요? 결과적으론 큰 차이가 없는듯 해서요.
블리스세븐
Lv. 3
댓글 10
1. PHP에서는 ''따옴표사이에 있는 문자는 문자열으로 인식합니다. 문자열은 구글에 검색하세요.
2. 따옴표가 없는 숫자는 일반 정수로 통합니다.
if 문을 사용할 때 연산자 비교할때 보통 '' 가 문자열이니 따옴표있는 숫자는 문자열의 숫자로 통용되지만
if(문자열 숫자 == 정수숫자)
도 참으로 인식하지만
if(문자열 숫자 === 정수 숫자)
는 거짓으로 인식합니다.
단 따옴표없이 숫자는 정수로 인식하지만 따옴표없는 영어는 문제가 발생됩니다.
그리고 html 파일이지만 최종 변환은 PHP이기 때문에 PHP문법을 이해하시고 배우시면 이런 의문이 도움이 됩니다.
cond 은 if 와 같다고 보시면 되는데요.
조건을 OR 조건을 쓰시려고 || 를 쓰신거라면 member_srl 이 4 이거나 100246 이거나 일때 조건을 통과시키겠다는 구문이 됩니다.
그런데 cond || cond 으로 쓰시는게 아니고 cond="조건 || 조건" 이런식으로 사용해야 합니다.
cond="$comment->get('member_srl') == 4 || $comment->get('member_srl') == 100246"
위와 같이 쓰셔야 합니다.
추가가 될때 마다 같은 것을 반복하면 좀 귀찮아지는데요. 이때 배열이라는 것을 공부하시면 좀 편해집니다.
cond="in_array($comment->get('member_srl'), array(1,100246))
이렇게 작성하시면 나중에 회원번호만 추가하면 됩니다.
OR 조건절을 계속 쓰는것과 같은 결과과 됩니다.
$comment->get('member_srl') 의 값이 배열(array) 중에 하나와 일치하면 참이 됩니다.
숫자가 아닌 문자가 들어갈때는 'A' 를 쓰시면 됩니다.
코드가 너무 길어져서 고민이었는데 완전 줄일 수 있게되었습니다.
" 마지막에 누락되었네요. 혹시 몰라 알려드려요. 빼먹고 실행하면 페이지 에러가 납니다. ㅜㅡ
cond="in_array($comment->get('member_srl'), array(1,100246))"
참고로 그냥 배열을 선언할 때는 array(...) 를 [...] 로 줄여쓸 수 있습니다.
코드도 간결해지고, 괄호가 연달아 나올 때 서로 다른 모양으로 구분하는 데도 도움이 되지요.
이건 목록이야!! 함수가 아니라 목록이라규!! 라고 아주 분명하게 알려주니까요. ㅎㅎ
cond="in_array($comment->get('member_srl'), [4, 5, 6, 7, 8])"
php 들여다 보기 전에는 코드를 보다가 두가지가 섞여서 등장하면 다른 것 처럼 보였네요 ㅋ
이래서 정석으로 배워야 하는거죠.
$array = array();
$array = [];
cond="$logged_info->group_list[1] ||$logged_info->group_list[2] ||$logged_info->group_list[3]"
위와 같이 []에 들어간 애들은 어떻게 써야 할까요?