先贴上两段代码:A:
class BallShop
{
private $itme_id;
public function __construct()
{
$this->itme_id = 2314;
}
public function open()
{
echo $this->itme_id;
}
}
B:
class BallShop
{
public function open()
{
$ceshi=2314;
echo $ceshi;
}
}
显然A.B两段代码有同样的作用,A代码使用了构造函数,对未赋值的变量在构造函数中赋值。
A方法更符合面向对象的概念,因为 $itme_id 变量为类中的公共变量,别的函数也可能调用此变量,而B相当于把 $ceshi写成了 函数 open()的内部变量了。
此类中的其他函数无法使用此变量。
以此也更好理解构造函数的作用,既在实例化类时初始化参数,相当于类的初始化,他在实例化这个类时优先进行。
TIPS:如果一个类的构造函数有参数,那么实例化该类的时候需要填入参数。