是否可以在 PHP 中定义以下数据结构?
typedef struct
{
int maxrank;
float rankrat[maxpop];
int rankno[maxpop];
individual ind[maxpop],
*ind_ptr;
}population ;
population pop;
是否可以在 PHP 中定义以下数据结构?
typedef struct
{
int maxrank;
float rankrat[maxpop];
int rankno[maxpop];
individual ind[maxpop],
*ind_ptr;
}population ;
population pop;
您无法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_ptr
and中引用$population->ind[]
。请记住,PHP 是松散类型的,因此您$ind_ptr
也可以立即成为array
,string
或其他任何东西。解决此问题的一种快速方法是使用带有类型提示的 setter 方法(以及后续的 getter),如下所示:
protected $_ind_ptr;
public function setIndPtr(Individual $ind)
{
$this->_ind_ptr = $ind;
}
public function getIndPtr()
{
return $this->_ind_ptr;
}
或者,如果它仅在一个位置,则使用数组来定义它。
是的,在课堂上。
class Population
{
public $maxrank;
public $rankrat = array();
public $rankno = array();
}