数码资讯
PHP中的构造函数和析构函数解析
构造函数 无效__construct({混{ $ args,…) PHP 5权限开发人员将类中的方法定义为构造函数,一个构造函数的类每次创建一个新对象时都会调用这个方法,所以在使用对象之前做一些初始化工作是非常合适的。 注意:如果构造函数是在类的定义,它不隐式调用它的父构造函数执行父类的构造函数,你
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
构造函数
无效__construct({混{ $ args,…)
PHP 5权限开发人员将类中的方法定义为构造函数,一个构造函数的类每次创建一个新对象时都会调用这个方法,所以在使用对象之前做一些初始化工作是非常合适的。
注意:如果构造函数是在类的定义,它不隐式调用它的父构造函数执行父类的构造函数,你需要打电话给父母::__construct()在子类的构造函数,如果类没有定义构造函数,它会从父类一个普通的类继承法(如果不是定义为私有)。
例如# 1使用新标准的构造函数
复制代码代码如下所示:
< PHP
类的基类{
功能__construct(){
在基类构造函数打印;
}
}
类的子类扩展基类{
功能__construct(){
家长::__construct();
在子类构造函数中打印;
}
}
类othersubclass扩展基类{
BaseClass的构造函数 / /继承
}
基类构造函数 / /
$ obj =新BaseClass();
基类构造函数 / /
子类构造函数
$ obj =新的子类();
基类构造函数 / /
$ obj =新OtherSubClass();
>
输出:
在BaseClass的构造函数
在BaseClass的构造函数
在子类的构造函数
在BaseClass的构造函数
为了实现向后兼容性,如果PHP 5找不到__construct()从父类继承的类和一个函数,它将试图找到一个旧的构造函数,这是一个具有相同名称的函数作为类。兼容性的案例是有一个方法叫__construct()的类,用于其他目的。
与其他方法不同的是,PHP不会产生e_strict错误消息当__construct()是由不同的方法与父类__construct()。
从命名空间php 5.3.3、,同一名称的方法作为类的名称不再是一个构造函数,这个改变不影响上课,不在命名空间。
2例#构造函数的类的命名空间
复制代码代码如下所示:
< PHP
Foo命名空间;
类酒吧{
公共功能条(){
在构造函数中5.3.0-5.3.2 / /处理PHP
作为普通法作为 / php 5.3.3
}
}
>
析构函数
__destruct虚空(void)
PHP 5引入了析构函数的概念,这是类似于其他面向对象的语言,如C++析构函数执行。当所有引用一个对象被删除或当对象被显式销毁。
实例3实例#析构函数
复制代码代码如下所示:
< PHP
类mydestructableclass {
功能__construct(){
在构造函数中打印;
美元->名称=mydestructableclass ;
}
功能__destruct(){
打印销毁。$这个名称。;
}
}
$ obj =新MyDestructableClass();
>
与构造函数一样,父类的析构函数不被引擎在黑暗中称。执行父类的析构函数家长::__destruct()必须在子类的析构函数体明确要求。此外,像构造函数,子类继承父类的如果他们没有定义析构函数。
即使在退出()终止脚本时,析构函数也被调用。
注:
析构函数被调用脚本时是关闭的,当所有的HTTP头信息已经发出。在脚本的时间工作目录关闭可能不同于SAPI(如Apache)。
注:
试图在析构函数中抛出一个异常,在脚本终止时调用它,会导致致命的错误。
无效__construct({混{ $ args,…)
PHP 5权限开发人员将类中的方法定义为构造函数,一个构造函数的类每次创建一个新对象时都会调用这个方法,所以在使用对象之前做一些初始化工作是非常合适的。
注意:如果构造函数是在类的定义,它不隐式调用它的父构造函数执行父类的构造函数,你需要打电话给父母::__construct()在子类的构造函数,如果类没有定义构造函数,它会从父类一个普通的类继承法(如果不是定义为私有)。
例如# 1使用新标准的构造函数
复制代码代码如下所示:
< PHP
类的基类{
功能__construct(){
在基类构造函数打印;
}
}
类的子类扩展基类{
功能__construct(){
家长::__construct();
在子类构造函数中打印;
}
}
类othersubclass扩展基类{
BaseClass的构造函数 / /继承
}
基类构造函数 / /
$ obj =新BaseClass();
基类构造函数 / /
子类构造函数
$ obj =新的子类();
基类构造函数 / /
$ obj =新OtherSubClass();
>
输出:
在BaseClass的构造函数
在BaseClass的构造函数
在子类的构造函数
在BaseClass的构造函数
为了实现向后兼容性,如果PHP 5找不到__construct()从父类继承的类和一个函数,它将试图找到一个旧的构造函数,这是一个具有相同名称的函数作为类。兼容性的案例是有一个方法叫__construct()的类,用于其他目的。
与其他方法不同的是,PHP不会产生e_strict错误消息当__construct()是由不同的方法与父类__construct()。
从命名空间php 5.3.3、,同一名称的方法作为类的名称不再是一个构造函数,这个改变不影响上课,不在命名空间。
2例#构造函数的类的命名空间
复制代码代码如下所示:
< PHP
Foo命名空间;
类酒吧{
公共功能条(){
在构造函数中5.3.0-5.3.2 / /处理PHP
作为普通法作为 / php 5.3.3
}
}
>
析构函数
__destruct虚空(void)
PHP 5引入了析构函数的概念,这是类似于其他面向对象的语言,如C++析构函数执行。当所有引用一个对象被删除或当对象被显式销毁。
实例3实例#析构函数
复制代码代码如下所示:
< PHP
类mydestructableclass {
功能__construct(){
在构造函数中打印;
美元->名称=mydestructableclass ;
}
功能__destruct(){
打印销毁。$这个名称。;
}
}
$ obj =新MyDestructableClass();
>
与构造函数一样,父类的析构函数不被引擎在黑暗中称。执行父类的析构函数家长::__destruct()必须在子类的析构函数体明确要求。此外,像构造函数,子类继承父类的如果他们没有定义析构函数。
即使在退出()终止脚本时,析构函数也被调用。
注:
析构函数被调用脚本时是关闭的,当所有的HTTP头信息已经发出。在脚本的时间工作目录关闭可能不同于SAPI(如Apache)。
注:
试图在析构函数中抛出一个异常,在脚本终止时调用它,会导致致命的错误。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。