Call to a member function on a non-object 원인을 모르겠네요.
현 코드 내용은아래와 같습니다
#해시 테이블
class Table_Hash
{
var $Key;
var $Data_Address;
var $next_Node;
var $prev_Node;
function Table_Hash($Key=NULL ,$D_Add=NULL )
{
$this->Key=$Key;
$this->Data_Address=$D_Add;
$this->next_Node=NULL;
$this->prev_Node=NULL;
}
}
#링크드 리스트
class Linked_List
{
var $node_Head;
function Linked_List()
{
$this->node_Head=NULL;
}
#노드를 연결구조체 앞부분에 배치시킨다.
function List_Insert(&$front_Node)
{
$front_Node->next_Node = &$this->node_Head;
if(!is_null($this->node_Head))$this->node_Head->prev_Node=&$front_Node;
$this->node_Head=&$front_Node;
$this->node_Head->prev_Node=NULL;
}
}
#HASHSIZE는 100의 상수
$item_Origin[HASHSIZE]= (array) new List_Item;#데이터 원본
$item_Name[HASHSIZE]= (array) new Table_Hash;#해시해서 재정렬
$list_Hash_table[HASHSIZE]=(array) new Linked_List();
#같은값의 해시로 중첩된 친구들을 링크드리스트로 연결
#루프를 돌리며 데이터베이스에서 데이터를 가져옴
#$db[0]은 이름 $db[1]은 4글자 주소요약명
while($db=mysql_fetch_row($sql)){
$temp_Hash=hash_Func($db[0]);
$item_Origin[$x]->name_Key=$db[0];
$item_Origin[$x]->adrress_Key=$db[1];
$itme_Name[$x]->Key=$temp_Hash;
$itme_Name[$x]->Data_Address=$db[0];
$list_Hash_table[$temp_Hash]->List_Insert($itme_Name[$x]);#문제의 지점
$x++;
}
#문제의 지점에서
Fatal error: Call to a member function List_Insert() on a non-object in C:\APM_Setup\htdocs\hash\hash.php on line 246 라고 나타남
원인을 몰겠네요
클래스를 객체배열로 만들때 함수가 있음 안되는건진 몰겠는데
다른 방법으로 해결도 가능할꺼같지만 저걸 해결하고싶군요..
itme_Name 과 item_Name
itme_Name 과 item_Name
변경해도 동일한 문제가 발생합니다.
$list_Hash_table[$temp_Hash]->List_Insert($item_Name[$x]);
제가 보기엔 지금 $list_Hash_table[HASHSIZE]=(array) new Linked_List(); 가 배열로 만들긴 했으나 뭔가 문제가 있는듯 하네요
동일한걸
for($a=0;$a<100;$a++){
$list_Hash_table[$a]= new Linked_List();
}
이렇게 무식하게 배열아닌 100개를 만들면 동작이 되는데
저건 안되는걸로 봐서 뭔가 문제가 있는듯 하네요
댓글 달기