class exp{
public $arg;
function func($arg,$pro="默认值"){ //这个可能是错的,$arg好像不能写在这里。
echo $this->arg.=$pro;
}
}
$obj=new exp;
$obj->func("必须要使用","");
//期待的结果是:必须要使用默认值。
php类定义了属性,类中的方法要使用默认值怎么办?
那这个怎么办?不定义类属性?
但exp类中还有N个方法需要使用$arg这个参数呢(或许该叫属性)。而且都是必须定义的参数,没有默认值的。默认值的参数又必须写$arg后面。
是不是这种类就不需要定义属性了?
每个方法都必须要定义的参数就可以直接定义个类属性了,如果不变的话可以直接public $arg='xxx';
如果随着场景不同这个值可能会发生变化,就把赋值放到构造方法里
public function __construct($aa)
{
$this->arg = $aa;
}
$obj = new exp($aa);
下面的方法就不用传参数了,直接调用$this->arg就可以了
再如果每次调用不通的方法,变量arg都不同,就不要定义属性了,直接给方法传值就可以了。
如果随着场景不同这个值可能会发生变化,就把赋值放到构造方法里
public function __construct($aa)
{
$this->arg = $aa;
}
$obj = new exp($aa);
下面的方法就不用传参数了,直接调用$this->arg就可以了
再如果每次调用不通的方法,变量arg都不同,就不要定义属性了,直接给方法传值就可以了。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-04-01
类外给成员属性赋值:$obj->arg = $arg;
初始化时候进行赋值:
__construct($arg=''){
$this->arg = $arg;
}
类中其他成员方法通过$this->arg都可以调用。
初始化时候进行赋值:
__construct($arg=''){
$this->arg = $arg;
}
类中其他成员方法通过$this->arg都可以调用。