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한 번지에 자동으로 값이 들어가게 됩니다.
즉 순차적으로 채워감을 의미합니다.
답변 달아 주신 모든 분들 고맙습니다. ^^*