펑키 제목에 대해 유감스럽게 생각하며 문제가 생겼습니다. 첫째, 나는 (코드 분리 후) 실제로 문제를 해결할 수 있었지만, 내 솔루션이 효과가 있었는지, 그리고이를 학습 경험으로 간주하려고하는지 잘 모른다.PHP 배열 인덱스 문제 발생
DB에서 정보를 수집하는 클래스가 있습니다. 이 클래스는 호출 함수가 한 번에 하나씩 결과를 가져올 수 있도록 인덱스 값을 추적합니다. 그래서 내 클래스 코드 원래 포함 ...
protected $index = NULL;
protected $array = array(stuff);
public function next_item()
{
if($this->index == NULL)
{//first time called
$this->index = 0;
}
else
{
$this->index++;
}
if($this->index < sizeof($this->array))
{
return TRUE;
}
return FALSE;
}
public function get_result()
{
return $this->array[$this->index];
}
그리고 호출하는 함수는
while($myclass->next_item()){
echo $myclass->get_result();
}
그것은 (모든 많은 참여 물론 이것보다하지만이 방법으로 문제가 코드와 유사한 무언가가 당신은 아이디어를 얻는다). 이 코드는 프로젝트에서 무한 루프 (또는 하나의 모양)를 유발했습니다. $ index를 -1로 초기화하고 null에 대한 조건부 검사를 제거하여 문제점을 수정했습니다. 그래서 지금은 ...
protected $index = -1;
public function next_item()
{
$this->index++;
if($this->index < sizeof($this->array))
{
return TRUE;
}
return FALSE;
}
내 질문은, 그게 뭐야? 배열이 NULL 인 동안 인덱스가 참조되지 않았습니다. 항상 NULL이 호출되었고 0에 대입 된 조건부 검사가 발생했습니다.
정말 감사드립니다. 이것을 학습 경험으로 바꾸려고 노력했습니다. 왜 그것이 효과가 있었는지 이해한다면 더 좋습니다.
이 질문에 대한 답변이 있으면 죄송합니다. 본인의 질문에 레이블을 붙이는 방법을 알 수 없으므로 이전 답을 찾지 못했습니다.
환호, 데이비드
실제로'if (++ $ this-> index array))'를 사용하여 줄을 저장하면 그 값이 증가합니다. –
DanRedux