2010-12-27 3 views
2

제 질문은 위에 명시된 것과 같습니다.current() 함수는 배열의 첫 번째 요소를 가리키는 내부 포인터로 시작하도록 보장됩니까?

$bar = current($foo); 

을 또는 내가 먹어야하는지 : "신뢰"배열의 내부 포인터가 항상 상관없이 자사의 첫 번째 요소를 가리 없다는 것을 무엇인지를 간단히이 사용하기에 충분한 경우

궁금하네요 어떤 기회와 처음과 같이 사용하기 전에 첫 번째 요소에 배열의 내부 포인터를 재설정하지 :

reset($foo); 
$bar = current($foo); 

만 현재() 함수는 신뢰할 수없는 경우가 존재 잘못된 정보를 잠재력 수 있기 때문에 물어 이유는 최종 사용자에게 그리고 나는에 좋아할 것이다 다음 주제의 이메일을 피하십시오.

"What is this? I don't even..." 

나는 분명히 알고 있습니다. :)

EDIT :

I는 전류() 함수의 포인트는 어레이의 현재 내부 포인터가 목적지에 접근하는 것을 이해한다. 내 질문은 내부 포인터가 다른 함수 호출이 내부 포인터를 이동해야합니다 때 배열 생성 직후 배열의 첫 번째 요소를 가리키는 보장됩니다 여부입니다.

답변

5

current()의 요점은 배열의 내부 포인터가 현재 인 경우 에있는 요소에 액세스하는 것입니다. 항상 첫 번째 요소를 반환하는 함수를 사용하려면 reset() 해당 배열의 내부 포인터 (첫 번째 요소의 값을 반환하므로 그 후에 current()을 호출 할 필요가 없습니다) 또는 $foo[0] (doesn 포인터를 이동하지 말고 적절하게 정렬되고 숫자로 색인 된 배열에만 사용하십시오).

으로 말했다가, 귀하의 질문에 대답하기 위해, current()당신이 array(...) 표기법을 사용하여 생성 직후 배열의 첫 번째 요소를 반환 보장입니다.

<?php 
$transport = array('foot', 'bike', 'car', 'plane'); 
$mode = current($transport); // $mode = 'foot'; 
... 

그리고 reset() 기능에 대한 매뉴얼 예제 : 다음 current() 기능에 대한 매뉴얼 예에서

<?php 

$array = array('step one', 'step two', 'step three', 'step four'); 

// by default, the pointer is on the first element 
echo current($array) . "<br />\n"; // "step one" 

... 
+2

한 - 주목해야한다 [0] $ foo는'하지 않습니다'그 배열이 숫자 키 대신 문자열을 사용하는 경우 작동합니다. –

+0

@Billy : 고마워, 나는 덧붙였다. – BoltClock

관련 문제