谁能给我解释下PHP类中的这个构造函数,使用的是数组作为参数.

classcontact{protected$id;protected$first_name;protected$last_name;protected$position... class contact {
protected $id;
protected $first_name;
protected $last_name;
protected $position;
protected $email;
protected $phone;

public function __construct($input=false) {
if(is_array($input)){
foreach ($input as $key => $val) {
$this->$key = $val;
}
}
}
一般做构造函数,都是用的普通模式,也就是类似
public function __construct($first_name, $last_name, $address, $phone_number, $boat_name, $reg_num, $boat_length, $boat_pic) {
$this->owner_id=null;
$this->first_name = $first_name;
$this->last_name = $last_name;
$this->address = $address;
}
第一种方法里,我个人理解,就是传进一个数组(其实数组便于管理,这点我是知道的), 然后使用了一个foreach 遍历数组,后面紧跟着$this->$key = $val;这是说把数组元素值赋值给了键名,那岂不是如果每个传进来的数组的元素值是不一样的,那这个键名也是变化的,怎么跟我这个类当中的类属性有关联?我不明白这么做的目的和好处,希望有高手帮个忙.谢谢
展开
 我来答
windblast
2015-03-09 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13623
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
第1个 contruct 构造函数,正如一般构造函数的基本功能一样:对类成员属性进行实始化。

代码中,如果检测到传入的参数是个数组,就遍历数组,然后用

$this->$key = $val;

进行类成员属性的初始化。

这里 $key 就是 类成员属性 的名称,而 $val 是应该赋予的初始值。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式