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

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

PHP基礎之類和對象4——自動加載對象

瀏覽:71日期:2022-09-14 17:22:15

很多開發者寫面向對象的應用程序時對每個類的定義建立一個 PHP 源文件。一個很大的煩惱是不得不在每個腳本開頭寫一個長長的包含文件列表(每個類一個文件)。

在 PHP 5 中,不再需要這樣了??梢远x一個?__autoload()?函數,它會在試圖使用尚未被定義的類時自動調用。通過調用此函數,腳本引擎在 PHP 出錯失敗前有了最后一個機會加載所需的類。

Tip

spl_autoload_register()?提供了一種更加靈活的方式來實現類的自動加載。因此,不再建議使用?__autoload()?函數,在以后的版本中它可能被棄用。

Note:

在 5.3.0 版之前,__autoload 函數拋出的異常不能被?catch?語句塊捕獲并會導致一個致命錯誤。從 5.3.0+ 之后,__autoload 函數拋出的異??梢员?catch?語句塊捕獲,但需要遵循一個條件。如果拋出的是一個自定義異常,那么必須存在相應的自定義異常類。__autoload 函數可以遞歸的自動加載自定義異常類。

Note:

自動加載不可用于 PHP 的 CLI?交互模式。

Example #1 自動加載示例

本例嘗試分別從 MyClass1.php 和 MyClass2.php 文件中加載?MyClass1?和?MyClass2?:

function __autoload($class_name){

require_once $class_name.’.php’;

}

$obj = new MyClass1();

$obj2 = new MyClass2();

注意:MyClass1.php和MyClass2.php需要和當前腳本在同一目錄才能加載到

Example #2 另一個例子

本例嘗試加載接口?ITest:

function?__autoload($name) {

???var_dump($name);

}

class?Foo?implements?ITest?{

}

/*

string(5) 'ITest'

Fatal error: Interface ’ITest’ not found in ...

*/

Example #3 自動加載在 PHP 5.3.0+ 中的異常處理

本例拋出一個異常并在 try/catch 語句塊中演示。

function?__autoload($name) {

???echo?'Want to load?$name.n';

???throw new?Exception('Unable to load?$name.');

}

try {

???$obj?= new?NonLoadableClass();

} catch (Exception $e) {

???echo?$e->getMessage(),?'n';

}

以上例程會輸出:

Want to load NonLoadableClass.Unable to load NonLoadableClass.

Example #4 自動加載在 PHP 5.3.0+ 中的異常處理 - 沒有自定義異常機制

本例將一個異常拋給不存在的自定義異常處理函數。

以上例程會輸出:

Want to load NonLoadableClass.Want to load MissingException.Fatal error: Class ’MissingException’ not found in testMissingException.php on line 4

了解更多參見

unserialize()

unserialize_callback_func

spl_autoload()

spl_autoload_register()

標簽: PHP
相關文章:
主站蜘蛛池模板: 搬运设备、起重设备、吊装设备—『龙海起重成套设备』 | 仪器仪表网 - 永久免费的b2b电子商务平台 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 二氧化碳/活性炭投加系统,次氯酸钠发生器,紫外线消毒设备|广州新奥 | 贵州自考_贵州自学考试网| 科普仪器菏泽市教育教学仪器总厂| 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 防堵吹扫装置-防堵风压测量装置-电动操作显示器-兴洲仪器 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 工业铝型材-铝合金电机壳-铝排-气动执行器-山东永恒能源集团有限公司 | 玄米影院| 鑫达滑石-辽宁鑫达滑石集团| 篷房[仓储-婚庆-展览-活动]生产厂家-江苏正德装配式帐篷有限公司 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 氟塑料磁力泵-不锈钢离心泵-耐腐蚀化工泵厂家「皖金泵阀」 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 数控车床-立式加工中心-多功能机床-小型车床-山东临沂金星机床有限公司 | cnc精密加工_数控机械加工_非标平键定制生产厂家_扬州沃佳机械有限公司 | 真空包装机-诸城市坤泰食品机械有限公司 | 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 华中线缆有限公司-电缆厂|电缆厂家|电线电缆厂家 | 压砖机_电动螺旋压力机_粉末成型压力机_郑州华隆机械tel_0371-60121717 | 小型数控车床-数控车床厂家-双头数控车床 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 拉伸膜,PE缠绕膜,打包带,封箱胶带,包装膜厂家-东莞宏展包装 | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 技德应用| 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 广州物流公司_广州货运公司_广州回程车运输 - 万信物流 | 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 北京翻译公司-专业合同翻译-医学标书翻译收费标准-慕迪灵 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 |