php 문법 질문있습니다.
본문
php 문법 질문있습니다.
질문1
$row[wr] 이렇게 쓰는것보다 $row['wr'] 이렇게가 맞는거겠죠??
질문1
$row[$i] 변수가 들어간부분도 $row['$i'] 이렇게 표기가 맞나요?
질문3
아래표기는 어떤형태가 좋은표기이죠?
sql_fetch(" select subject from banner where cate = '".$row['cate']."' ");
sql_fetch(" select subject from banner where cate = '{$row['cate']}' ");
질문4
아래표기는 어떤형태가 좋은것인가요?
echo "?$qstr&page=")";
echo "?".$qstr."&page=")";
echo "?{$qstr}&page=")";
질문5 여러개의 변수가 들어가는경우 어떤형태가 맞는건지..
$sql = "select * from $DB_name $where $where1 $where2 ";
$sql = "select * from ".$DB_name." ".$where." ".$where1." ".$where2 ;
$sql = "select * from {$DB_name} {$where} {$where1} {$where2} ";
질문6
배열변수의경우 어느형태로 쓰는것이 맞는건지..
$all_count = $row[0];
$all_count = $row['0'];
답변 4
php 문법 질문있습니다.
질문1
$row[wr] 이렇게 쓰는것보다 $row['wr'] 이렇게가 맞는거겠죠??
==> $row["wr"] 도 됩니다.....
다만 컴파일시에 $row['wr'] 좋다고 어디서 주서들었습니다.
질문1
$row[$i] 변수가 들어간부분도 $row['$i'] 이렇게 표기가 맞나요?
아닙니다. 엄밀하게 말하면 다릅니다.
$i가 숫자일경우를 생각하시면 됩니다. 문자와 숫자는 다르지요.
하지만 이것을 무시하고 같은것으로 처리 됩니다.....
질문3
아래표기는 어떤형태가 좋은표기이죠?
sql_fetch(" select subject from banner where cate = '".$row['cate']."' ");
sql_fetch(" select subject from banner where cate = '{$row['cate']}' ");
아주 작은 차이가 있다고 들었습니다. 이건 잘 모르겠습니다.
질문4
아래표기는 어떤형태가 좋은것인가요?
echo "?$qstr&page=")";
echo "?".$qstr."&page=")"; <-- 이거요..... 원칙상으로 좋다는것이지
echo "?{$qstr}&page=")";
질문5 여러개의 변수가 들어가는경우 어떤형태가 맞는건지..
$sql = "select * from $DB_name $where $where1 $where2 ";
$sql = "select * from ".$DB_name." ".$where." ".$where1." ".$where2 ;
$sql = "select * from {$DB_name} {$where} {$where1} {$where2} "; <-- 이게 제일 좋겠지요. 구분이 확실히 되지요. 타이핑도 편하고.
질문6
배열변수의경우 어느형태로 쓰는것이 맞는건지..
$all_count = $row[0]; <-- 숫자
$all_count = $row['0']; <-- 문자
위에 답변드렸습니다. 아래코드를 실행해 보세요.. 똑같이 나오나 다르게 나오나....
똑같이 나온다면 무엇을 쓰시겠습니까?
<?
$arr= array();
$arr[0] = 1;
$arr['0']=2;
print_r($arr);
?>
숫자 즉 배열 번호를 참조하는 것이라면 그냥 쓰는게 좋습니다 $row[0]
문자형 배열을 참조하는 것이라면 홑따옴표를 $row['wr']
변수 참조라면 홑따옴표 없는 변수를 $row[$i]
중괄호로 변수를 감쌀지 혹은 연결자를 이용해서 변수를 처리할지는 본인의 코딩 스타일에 따라
어느것이든 상관 없지만 중괄호를 적절히 쓴다면 보기에 훨씬 편할듯 합니다
질문1
php 버전에 따라서 상이합니다.
5.3버전 이후 부터 $row['wr'] 이러한 문법을 권장하고 있습니다. 그 이전 버전대에는 $row[wr] 허용 하였습니다. php8버전대에는 지원 중지를 하였으니 앞으로는 권장하는 방향으로 코딩하시길 바랍니다.
질문1
$row[$i] 이러한 형태로 사용하셔야 합니다. 인식되지 못한 키라고 오류를 뽑아냅니다.
질문3
취향의 영역이라 편한 코딩으로 하시면 됩니다.
질문4
2번째가 나아보입니다.
질문5
3개 모두 추천 드리지 않습니다.
$where 조건의 변수를 하나를 두시고 문자를 연결하는 형태를 추천드립니다.
질문6
배열의 인덱스는 정수형태 입니다. 그래서 문자열 형식으로 접근하시기 보다는 첫 번째 정수 형태로 하시는 것이 맞습니다.
기본적으로 모든 답변은 아래 페이지에 나옵니다.
- https://www.php.net/manual/en/language.types.string.php
- https://www.php.net/manual/en/language.types.string.php#language.types.string.parsing
- https://www.php.net/manual/en/language.types.array.php
- Array do's and don'ts - https://www.php.net/manual/en/language.types.array.php#language.types.array.donts
- https://www.php.net/manual/en/function.echo
‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
질문1
$row[wr] 이렇게 쓰는것보다 $row['wr'] 이렇게가 맞는거겠죠??
> $row['wr'] 구문이 맞습니다.
질문1
$row[$i] 변수가 들어간부분도 $row['$i'] 이렇게 표기가 맞나요?
> 틀립니다. '로 감싸면 해석되지 않습니다. $lang = 'PHP'; echo '$lang'; // $lang 그대로 출력
질문3
아래표기는 어떤형태가 좋은표기이죠?
sql_fetch(" select subject from banner where cate = '".$row['cate']."' ");
sql_fetch(" select subject from banner where cate = '{$row['cate']}' ");
> 둘 다입니다. 본인에게 편한 구문을 사용하면 됩니다.
코드 하이라이트 기능이 있다면, 위쪽의 구문이 문자열과 변수가 구분되어 보기 편할 수 있습니다.
+ sprintf() 함수 사용도 나쁘지 않습니다. 설명 및 예제 참고해보세요.
- https://www.php.net/manual/en/function.sprintf.php
질문4
아래표기는 어떤형태가 좋은것인가요?
echo "?$qstr&page=")";
echo "?".$qstr."&page=")";
echo "?{$qstr}&page=")";
> 구문 오류는 그냥 넘기고, 질문3의 답변과 마찬가지입니다.
+ 참고로 아래 http_build_query() 함수 설명 및 예제를 참고해보세요.
- https://www.php.net/manual/en/function.http-build-query.php
질문5 여러개의 변수가 들어가는경우 어떤형태가 맞는건지..
$sql = "select * from $DB_name $where $where1 $where2 ";
$sql = "select * from ".$DB_name." ".$where." ".$where1." ".$where2 ;
$sql = "select * from {$DB_name} {$where} {$where1} {$where2} ";
> 처음에 남긴 링크의 설명 및 예제 참고하면 됩니다.
질문3의 답변과 마찬가지로 본인에게 편한 구문을 사용하면 됩니다.
질문6
배열변수의경우 어느형태로 쓰는것이 맞는건지..
$all_count = $row[0];
$all_count = $row['0'];
> $row[0]. 숫자만 있으면 굳이 '로 감쌀 필요가 없습니다.
+ 참고로 0은 int, '0'은 string입니다. 느슨(Loose)한 비교로 둘은 같지만, 엄격(Strict)한 비교로는 다릅니다.
- https://www.php.net/manual/en/types.comparisons.php