2012-08-31 62 views
1

是否可以在PHP中定義以下數據結構?PHP中的數據結構

typedef struct 
{ 
    int maxrank;   
    float rankrat[maxpop]; 
    int rankno[maxpop]; 
    individual ind[maxpop], 
    *ind_ptr; 
}population ; 

population pop; 
+0

是與類 – MimiEAM

回答

4

不能定義比在PHP中的class其他的數據結構,所以你總是可以做到這一點。它看起來有點像這樣:

class Population 
{ 
    public $maxrank; 
    public $rankrat = array(); 
    public $rankno = array(); 
    public $ind = array(); 
    public $ind_ptr; 
} 

$population = new Population(); 

尋找多一點的數據結構,你想也想要一個Individual類,它會從$population->ind_ptr$population->ind[]引用。請記住,PHP是寬鬆輸入的,所以你的$ind_ptr也可以變成array,string或其他任何其他的即時。解決此一個快速的方法將是具有類型暗示setter方法(以及隨後的吸氣劑)是這樣的:

protected $_ind_ptr; 
public function setIndPtr(Individual $ind) 
{ 
    $this->_ind_ptr = $ind; 
} 
public function getIndPtr() 
{ 
    return $this->_ind_ptr; 
} 

可替代地,使用數組,如果它僅在一個位置處限定它。

1

是的,在一個班級。

class Population 
{ 
    public $maxrank; 
    public $rankrat = array(); 
    public $rankno = array(); 
}