게시판 검색함수에 대해서 궁금한점이 있습니다.
본문
common.lib.php 파일에서
게시판 검색에 사용되는 get_sql_search() 함수가 있는데요?
// 검색 구문을 얻는다.
function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator='and')
{
global $g5;
$str = "";
if ($search_ca_name)
$str = " ca_name = '$search_ca_name' ";
$search_text = strip_tags(($search_text));
$search_text = trim(stripslashes($search_text));
if (!$search_text) {
if ($search_ca_name) {
return $str;
} else {
return '0';
}
}
if ($str)
$str .= " and ";
// 쿼리의 속도를 높이기 위하여 ( ) 는 최소화 한다.
$op1 = "";
// 검색어를 구분자로 나눈다. 여기서는 공백
$s = array();
$s = explode(" ", $search_text);
.........................................
여기부분에서
$str = "";
if ($search_ca_name)
$str = " ca_name = '$search_ca_name' ";
$search_text = strip_tags(($search_text));
$search_text = trim(stripslashes($search_text));
if (!$search_text) {
if ($search_ca_name) {
return $str;
} else {
return '0';
}
}
if ($str)
$str .= " and ";
이부분이 엄청 이해가 안됩니다.
우선은 처음에는 값이 없는 $str 변수를 선언합니다.
그리고 카테고리(분류)가 있다면 $str 변수에 쿼리스트링 ca_name = '$search_ca_name' 을 추가합니다.
이후에 $search_text (검색어)변수에 있는 검색어를 가공합니다.
마지막으로
if (!$search_text) >>> 검색어가 없다면 실행합니다.
즉 검색어가 없는 경우는 분류를 클릭했을 경우 분류 검색을 위해서죠?
그리고나서
if ($search_ca_name) { >>>> 분류가 있다면 이전에 $str 변수에 쿼리스트링을 추가한 문자열을 리턴합니다.
return $str;
} else { >>>> 여기에서 첫번째 질문입니다. else는 0을 리턴하는데 0을 리턴하는 의미가 무엇인가요???
return '0';
}
else는 0을 리턴하는데 0을 리턴하는 의미가 무엇인가요???
!-->!-->답변 1
함수에서 return 값을 0으로 리턴하는 거는
php에서 1은 true 가 되고 0은 false가 됩니다.
function 을 0으로 리턴을 하면 해당하는 함수의 값을 안쓰게 된다는걸 의미합니다.
말로 설명하려니 두서가 좀 없기는 한데 이해하셨으리라 봅니다.
예를 들면
function abs(){
return 0;
}
$a = abs();
이렇게 $a 라는 변수에 함수를 담으면
$a 는 0을 반환하니 false 가 됩니다.
즉
if(!$a){
echo "출력";
} else {
echo "출력하지않음";
}
이런용도로 쓰실 수 있어요.
검색함수를 이용하는 변수쪽을 보면 이해하기 쉬우시리라 판단됩니다^^
도움이 되셨다면 채택 부탁드릴게요 ~