묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
list와 each함수에 대한 질문여...
2003.01.27 04:17
list() 구문은 지정된 배열의 모든 원소값을 list()구문내에 존재하는 모든 변수에 순차적으로
할당하는 거고,
each() 함수는 each()함수내에 인자로 지정된 배열의 각 원소를 배열형태로 특정 배열변수
에 할당하고, 배열포인터를 다음 원소로 이동시키는 거잖아요..
list()구문과 each()함수를 따로 따로 사용할 경우에는 정의된 뜻대로 잘 되는데...
list()구문과 each()함수를 같이 사용할 경우에는 그렇게 안되네요...
우선 소스를 보여드릴께요...
(소스1)
<?
$menu=array(pizza,cola,pasta,apple);
list($a,$b,$c,$d)=$menu;
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
echo "<br>";
?>
-결과-
pizza
cola
pasta
apple
(소스2)
<?
$menu=array(pizza,cola,pasta,apple);
$test=each($menu);
echo $test[0]."<br>";
echo $test[1]."<br>";
echo $test[key]."<br>";
echo $test[value]."<br>";
echo "<br>";
?>
-결과-
pizza
pizza
(소스1)과 (소스2)는 정의된 뜻대로 잘 되는데...
만약, (소스3)처럼 같이 코딩할 경우..
(소스3)
<?
$menu=array(pizza,cola,pasta,apple);
list($a,$b,$c,$d)=each($menu);
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
?>
-결과-
pizza
이렇게 나와버리네요. 원래 (소스3)이 ...
<?
$menu=array(pizza,cola,pasta,apple);
list($a,$b,$c,$d)=array(0=>0,1=>pizza,key=>0,value=>pizza)
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
?>
와 같이 되어서 (소스2)와 같은 결과가 나와야하는거 아닌가요??
아니면 (소스3)처럼 list()구문과 each()함수가 같이 사용될 경우......
list()구문은 each()함수에서 생성된 배열 의 참조키 중 [0],[1]가 참조하는 키값을 list()구문내의 변수에 할당하는 하거나, [key],[value]가 참조하는 키 값을 list()구문내의 변수에 할당
하는 건가요??
질문2)
list()구문에서 지정된 배열은 연관배열은 사용할 수 없고, 스칼라 배열만 사용가능한가요??
예를들어..
<?
$menu=array(pizza,cola,pasta,apple);
list($a,$b,$c,$d)=$menu;
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
echo "<br>";
?>
이렇게 했을 때는 정상적으로 되는데...
<?
$menu=array(w=>pizza,x=>cola,y=>pasta,z=>apple);
list($a,$b,$c,$d)=$menu;
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
echo "<br>";
?>
이렇게 했을 경우에는 아무런 값도 출력이 되지 않더라구요...ㅡㅡ;
할당하는 거고,
each() 함수는 each()함수내에 인자로 지정된 배열의 각 원소를 배열형태로 특정 배열변수
에 할당하고, 배열포인터를 다음 원소로 이동시키는 거잖아요..
list()구문과 each()함수를 따로 따로 사용할 경우에는 정의된 뜻대로 잘 되는데...
list()구문과 each()함수를 같이 사용할 경우에는 그렇게 안되네요...
우선 소스를 보여드릴께요...
(소스1)
<?
$menu=array(pizza,cola,pasta,apple);
list($a,$b,$c,$d)=$menu;
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
echo "<br>";
?>
-결과-
pizza
cola
pasta
apple
(소스2)
<?
$menu=array(pizza,cola,pasta,apple);
$test=each($menu);
echo $test[0]."<br>";
echo $test[1]."<br>";
echo $test[key]."<br>";
echo $test[value]."<br>";
echo "<br>";
?>
-결과-
pizza
pizza
(소스1)과 (소스2)는 정의된 뜻대로 잘 되는데...
만약, (소스3)처럼 같이 코딩할 경우..
(소스3)
<?
$menu=array(pizza,cola,pasta,apple);
list($a,$b,$c,$d)=each($menu);
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
?>
-결과-
pizza
이렇게 나와버리네요. 원래 (소스3)이 ...
<?
$menu=array(pizza,cola,pasta,apple);
list($a,$b,$c,$d)=array(0=>0,1=>pizza,key=>0,value=>pizza)
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
?>
와 같이 되어서 (소스2)와 같은 결과가 나와야하는거 아닌가요??
아니면 (소스3)처럼 list()구문과 each()함수가 같이 사용될 경우......
list()구문은 each()함수에서 생성된 배열 의 참조키 중 [0],[1]가 참조하는 키값을 list()구문내의 변수에 할당하는 하거나, [key],[value]가 참조하는 키 값을 list()구문내의 변수에 할당
하는 건가요??
질문2)
list()구문에서 지정된 배열은 연관배열은 사용할 수 없고, 스칼라 배열만 사용가능한가요??
예를들어..
<?
$menu=array(pizza,cola,pasta,apple);
list($a,$b,$c,$d)=$menu;
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
echo "<br>";
?>
이렇게 했을 때는 정상적으로 되는데...
<?
$menu=array(w=>pizza,x=>cola,y=>pasta,z=>apple);
list($a,$b,$c,$d)=$menu;
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";
echo "<br>";
?>
이렇게 했을 경우에는 아무런 값도 출력이 되지 않더라구요...ㅡㅡ;