這是我在這裏的第一個問題,我希望你能幫助我..問題PHP類函數()
我試圖通過三種搜索方式(BFS-DFS找到河內問題的塔的soloution -ids),所以我使用 「狀態」 類whitch由5個變量如本文所定義:
類狀態{
var $tower1 = array(); var $tower2 = array(); var $tower3 = array(); var $depth; var $neighbors = array();
,它也有許多功能其中之一是getneighbors(),它應該填補了數組$鄰邦國家的鄰居,他們是從類型「狀態」
和這裏的功能:
功能getneighbors()
{
$temp=$this->copy();
$neighbor1= $this->copy();
$neighbor2= $this->copy();
$neighbor3= $this->copy();
$neighbor4= $this->copy();
$neighbor5= $this->copy();
$neighbor6= $this->copy();
if(!Empty($temp->tower1))
{
if(!Empty($neighbor1->tower2))
{
if(end($neighbor1->tower1) < end($neighbor1->tower2))
{
array_unshift($neighbor1->tower2,array_pop($neighbor1->tower1));
array_push($neighbors,$neighbor1);
}}
else
{
array_unshift($neighbor1->tower2, array_pop($neighbor1->tower1));
array_push($neighbors,$neighbor1);
}
if(!Empty($neighbor2->tower3))
{
if(end($neighbor2->tower1) < end($neighbor2->tower3))
{ array_unshift($neighbor2->tower3, array_pop($neighbor2->tower1));
array_push($neighbors,$neighbor2);
}}
else
{
array_unshift($neighbor2->tower3,array_shift($neighbor2->tower1));
array_push($neighbors,$neighbor2);
}
}
if(!Empty($temp->tower2))
{
if(!Empty($neighbor3->tower1))
{
if(end($neighbor3->tower2) < end($neighbor3->tower1))
{ array_unshift($neighbor3->tower1,array_shift($neighbor3->tower2));
array_push($neighbors,$neighbor3);
}
}
else
{
array_unshift($neighbor3->tower1,array_shift($neighbor3->tower2));
array_push($neighbors,$neighbor3);
}
if(!Empty($neighbor4->tower3))
{
if(end($neighbor4->tower2) < end($neighbor4->tower3))
{ array_unshift($neighbor4->tower1,array_shift($neighbor4->tower2));
array_push($neighbors,$neighbor4);
}
}
else{
array_unshift($neighbor4->tower3,array_shift($neighbor4->tower2));
array_push($neighbors,$neighbor4);
}
}
if(!Empty($temp->tower3))
{
if(!Empty($neighbor5->tower1))
{
if(end($neighbor5->tower3) < end($neighbor5->tower1))
{array_unshift($neighbor5->tower1,array_shift($neighbor5->tower3));
array_push($neighbors,$neighbor5);
}
}
else{
array_unshift($neighbor5->tower1,array_shift($neighbor5->tower3));
array_push($neighbors,$neighbor5);}
if(!Empty($neighbor6->tower2))
{
if(end($neighbor6->tower3) < end($neighbor6->tower2))
{ array_unshift($neighbor6->tower2,array_shift($neighbor6->tower3));
array_push($neighbors,$neighbor6);
}}
else{
array_unshift($neighbor6->tower2,array_shift($neighbor6->tower3));
array_push($neighbors,$neighbor6);}
}
return $neighbors;
}
注意的toString和equals和複製被定義太
現在的問題是,當我叫getneighbors()返回一個空$鄰居陣列
你能認罪s告訴我這個問題?
這將有助於看到更大的聲明。 'getneighbors()'在我上課的課上?什麼級別?上述5個變量定義了哪些?他們是類變量還是全局變量?編輯:我看到上面的課程{},錯過了它。 – 2010-05-30 15:32:24