class upload{
protected $name;
protected $sex;
public function __construct($name='默认值',$sex='默认值'){
$this->name=$name;
$this->sex=$sex;
}
}
为什么不能这样写?
public function __construct($name,$sex){
$this->name=$name;
$this->sex=$sex;
}
还有我可以这样写吗?如果上面的参数过多,要写何年马月?
public function __construct($opt){
$this->name=$opt->name;
$this->sex=$opt->sex;
}
为什么必须给构造函数加默认值,否则会报错!!!写惯了js,php的构造函数是在是有点不明白。解释下必须要给参数赋默认值吗?
与构造函数无关。
只要函数的参数没有给默认值,你使用的时候都必须传参数。
要说比js麻烦,这种说法是不太对的,在js中(ES6之前),给函数设置默认值就比php要麻烦;这又怎么说呢?
另外,你说到的第三种,参数传一个对象,或者是数组,这种做法是可以的;当然赋值的时候可以用循环而不必一个一个写。