面向对象编程六
今天主要讲一下,php5中的构造函数和析构函数!!
之前php4中的构造函数采用跟类名同名的函数,作为构造函数,这样,
如果修改一些东西的时候 ,会很麻烦,所以,我们采用 __construct();
举例如下:
class a{
public $b;
public function __construct($c){
$this->b = $c;
}
public function __destruct(){
echo '
我是析构方法!';
}
}
$d = new a(5);
print_r($d);
结果就是:
a Object ( [b] => 5 )
我是析构方法!
注意:构造方法的调用是在类被实例化成为对象的时候,调用的!
析构方法是在对象被手动销毁(unset())或者在代码执行完之后,自动销毁的时候调用的!
总结起来:一个是对象声明的时候调用;一个是对象销毁的时候调用!
然后说一下,关键字final的使用!!
final关键词是 '最终的' 的意思!
final class a{ //在这里final修饰类,表示最终的类 ,也就是说,这个类不可以被继承!
}
class a{
public $b;
final public function c(){
echo '1';
}
}
class aa extends a{
public function c(){ //Fatal error: Cannot override final method a::c()
//表示 final修改的函数,不可以覆盖
echo '2';
}
}
最后总结一下:final可以修饰类(不能继承)和方法(不能覆盖)!
其中类之间就是能不能 ’继承‘ 的关系!
其中方法之间就是能不能 ’覆盖‘ 的关系!
最后,我们再说一下对象的赋值:
class a{
public $b = 2;
}
$x = new a();
$y = $x;
/*
在这里,我们给$y->b重新复制为3,在$x对象中,的值也跟着变成了3;
记住这里对象和变量的赋值是不一样的!
*/
$y->b = 3;
print_r($x);
相关文章 |