array() 함수 기초 질문입니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
array() 함수 기초 질문입니다.

QA

array() 함수 기초 질문입니다.

본문

 $extend_file = array();
 $tmp = dir(G5_EXTEND_PATH);
 while ($entry = $tmp->read()) {
  // php 파일만 include함
  if (preg_match("/(\.php)$i", $entry)) {
   $extend_file[] = $entry
  }
 }

 if (!empty($extend_file) && is_array($extend_file)) {
  natsort($extend_file);
  foreach ($extend_file as $file) {
   include_once(G5_EXTEND_PATH.''.$file);
  }
 }

 unset($extend_file);​

 

-------------------------------------------------------------------------------

common.php 파일을 보던 중 위 빨간색 줄과 보라색 줄의 차이점이 뭔지 궁금해서 질문 드립니다.

 

빨간색 줄의 $extend_file을 배열로 놓고 php 파일이 맞으면 보라색 줄처럼 배열안에 넣는다 

이 뜻이 맞는지요?

 

왜 array() 이렇게 배열을 표시 하면서 보라색줄은 $extend_file[] 처럼  []  <----- 이것처럼 괄호로 표현했는지 모르겠습니다.

 

빨간색 줄에서 함수를 배열로 정의했기때문에 보라색줄처럼 [] 이렇게 쓰는건지요?

 

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 4

1. 빨간색 줄의 $extend_file을 배열로 놓고 php 파일이 맞으면 보라색 줄처럼 배열안에 넣는다 

이 뜻이 맞는지요? <-- 맞습니다.

 

$extend_file = array(); <-- 배열선언입니다.   $extend_file 은 배열이다 이런 말입니다.

 $tmp = dir(G5_EXTEND_PATH);
 while ($entry = $tmp->read()) {
  // php 파일만 include함
  if (preg_match("/(\.php)$i", $entry)) {
   $extend_file[] = $entry <-- 배열이라고 선언을 했으니까 가능합니다. 배열의 비어있는 곳에 $entry를 넣어라 입니다.

$extend_file[0]부터 차례로 들어가게 되지요. 자세히 설명하자면 좀 길구요. 값이 없는 배열부터 차례로 들어갑니다. 

  }

 }

 

2. 왜 array() 이렇게 배열을 표시 하면서 보라색줄은 $extend_file[] 처럼  []  <----- 이것처럼 괄호로 표현했는지 모르겠습니다.

3. 빨간색 줄에서 함수를 배열로 정의했기때문에 보라색줄처럼 [] 이렇게 쓰는건지요?

2,3번은 같이 설명하겠습니다.

 

다시 설명하면 선언시에는 array(); 를 사용합니다. 

그러나 그 배열을 사용할때에는 []를 사용하지요. 방번호를 지정하듯이요.

선언과 사용의 차이입니다.array의 ()와 배열사용의 []은 연관성이 없습니다.​

 

php가(다른언어도 거의 함수형언어는) 함수베이스 언어이기 때문에 

배열을 선언시에 함수를 콜해서 배열을 만드는것이 당연한것이고,

그것때문에 ()를 사용할 뿐이고 array는 함수명일 뿐이죠.

[]은 배열사용을 위한 약속일뿐이구요.

 

물론 지금의 php는 class도 사용가능합니다. 태생이 함수베이스 입니다.

말 그대로 배열변수로 지정하겠다는 예기가
바로 array() 입니다

보라색부분은 배열번지를 순차적으로 지정한 값으로 채우겠디는 예기입니다.

[0]=값 하면 지정한 0번지에 값을 넣지만
[]=값 하면 등록된 배열번지의 마지막번지값+1한 번지에 자동으로 값이 들어가게 됩니다.

즉 순차적으로 채워감을 의미합니다.

참고적으로 변수=array() 를 하지 않더라도 물론
변수[0]=값 으로 지정할수 있긴 합니다
자세한 내용및 참고는 php.net에서 array로 검색하시면 보다 많은 정보를 얻을수 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 60,061
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT