电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP基礎之類和對象5——構造函數和析構函數

瀏覽:29日期:2022-09-14 17:24:41
構造函數??

void__construct?([?mixed$args?[,?$...?]] )

PHP 5 允行開發者在一個類中定義一個方法作為構造函數。具有構造函數的類會在每次創建新對象時先調用此方法,所以非常適合在使用對象之前做一些初始化工作。

Note: 如果子類中定義了構造函數則不會隱式調用其父類的構造函數。要執行父類的構造函數,需要在子類的構造函數中調用parent::__construct()。如果子類沒有定義構造函數則會如同一個普通的類方法一樣從父類繼承(假如沒有被定義為 private 的話)。

Example #1 使用新標準的構造函數

class BaseClass

{

function __construct(){

print 'In BaseClass constructor<br>';

}

}

class SubClass extends BaseClass

{

function __construct(){

parent::__construct();

print 'In SubClass constructor<br>';

}

}

class OtherSubClass extends BaseClass

{}

$obj = new BaseClass();

$obj = new SubClass();

$obj = new OtherSubClass();

輸出結果:

In BaseClass constructor

In BaseClass constructor

In SubClass constructor

In BaseClass constructor

為了實現向后兼容性,如果 PHP 5 在類中找不到?__construct()?函數并且也沒有從父類繼承一個的話,它就會嘗試尋找舊式的構造函數,也就是和類同名的函數。因此唯一會產生兼容性問題的情況是:類中已有一個名為?__construct()?的方法卻被用于其它用途時。

與其它方法不同,當?__construct()?被與父類?__construct()?具有不同參數的方法覆蓋時,PHP 不會產生一個?E_STRICT?錯誤信息。

自 PHP 5.3.3 起,在命名空間中,與類名同名的方法不再作為構造函數。這一改變不影響不在命名空間中的類。

Example #2 Constructors in namespaced classes

namespace Foo;

class Bar{

public function Bar(){

//在PHP5.3.0-5.3.2中被看作是構造函數

//自PHP5.3.3起被視作一個普通的方法

}

}

析構函數??

void__destruct?( void )

PHP 5 引入了析構函數的概念,這類似于其它面向對象的語言,如 C++。析構函數會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執行。

Example #3 析構函數示例

<?php

class MyDestructableClass{

function __construct(){

print 'In constructor<br>';

$this->name = 'MyDestructableClass';

}

function __destruct(){

print 'Destroying '.$this->name.’<br>’;

}

}

$obj = new MyDestructableClass();

?>

輸出結果:

In constructor

Destroying MyDestructableClass

和構造函數一樣,父類的析構函數不會被引擎暗中調用。要執行父類的析構函數,必須在子類的析構函數體中顯式調用?parent::__destruct()。此外也和構造函數一樣,子類如果自己沒有定義析構函數則會繼承父類的。

析構函數即使在使用?exit()?終止腳本運行時也會被調用。在析構函數中調用?exit()?將會中止其余關閉操作的運行。

Note:

析構函數在腳本關閉時調用,此時所有的 HTTP 頭信息已經發出。腳本關閉時的工作目錄有可能和在 SAPI(如 apache)中時不同。

Note:

試圖在析構函數(在腳本終止時被調用)中拋出一個異常會導致致命錯誤。

標簽: PHP
相關文章:
主站蜘蛛池模板: 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 2025黄道吉日查询、吉时查询、老黄历查询平台- 黄道吉日查询网 | 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 新车测评网_网罗汽车评测资讯_汽车评测门户报道| 骨密度检测仪_骨密度分析仪_骨密度仪_动脉硬化检测仪专业生产厂家【品源医疗】 | 海南在线 海南一家 | 二手注塑机回收_旧注塑机回收_二手注塑机买卖 - 大鑫二手注塑机 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 临朐空调移机_空调维修「空调回收」临朐二手空调 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 华夏医界网_民营医疗产业信息平台_民营医院营销管理培训 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 工控机-图像采集卡-PoE网卡-人工智能-工业主板-深圳朗锐智科 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 论文查重_免费论文查重_知网学术不端论文查重检测系统入口_论文查重软件 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | 水质传感器_水质监测站_雨量监测站_水文监测站-山东水境传感科技有限公司 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 北京软件开发_软件开发公司_北京软件公司-北京宜天信达软件开发公司 | 瓶盖扭矩测试仪-瓶盖扭力仪-全自动扭矩仪-济南三泉中石单品站 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 协议书_协议合同格式模板范本大全| 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 深圳市源和塑胶电子有限公司-首页 |