1

是否可以在 PHP 中定义以下数据结构?

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

population pop;
4

2 回答 2

4

您无法class在 PHP 中定义除 a 之外的数据结构,因此您始终可以这样做。它看起来有点像这样:

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

$population = new Population();

再看一下数据结构,您还需要一个Individual类,该类将从$population->ind_ptrand中引用$population->ind[]。请记住,PHP 是松散类型的,因此您$ind_ptr也可以立即成为arraystring或其他任何东西。解决此问题的一种快速方法是使用带有类型提示的 setter 方法(以及后续的 getter),如下所示:

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

或者,如果它仅在一个位置,则使用数组来定义它。

于 2012-08-31T19:41:36.347 回答
1

是的,在课堂上。

class Population
{
    public $maxrank;
    public $rankrat = array();
    public $rankno = array();
}
于 2012-08-31T19:43:14.243 回答