Call to a member function on a non-object 원인을 모르겠네요.

jhjjgu0115의 이미지

현 코드 내용은아래와 같습니다

#해시 테이블
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

jhjjgu0115의 이미지

$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개를 만들면 동작이 되는데
저건 안되는걸로 봐서 뭔가 문제가 있는듯 하네요

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.