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

您的位置:首頁技術(shù)文章
文章詳情頁

PHP基礎(chǔ)之類和對象4——自動加載對象

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

很多開發(fā)者寫面向?qū)ο蟮膽?yīng)用程序時對每個類的定義建立一個 PHP 源文件。一個很大的煩惱是不得不在每個腳本開頭寫一個長長的包含文件列表(每個類一個文件)。

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

Tip

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

Note:

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

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+ 中的異常處理 - 沒有自定義異常機制

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

以上例程會輸出:

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
相關(guān)文章:
主站蜘蛛池模板: 健康管理师报考条件,考试时间,报名入口—首页 | 广东泵阀展|阀门展-广东国际泵管阀展览会| 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 超声波清洗机_超声波清洗机设备_超声波清洗机厂家_鼎泰恒胜 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 | 别墅图纸超市|别墅设计图纸|农村房屋设计图|农村自建房|别墅设计图纸及效果图大全 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 免费分销系统 — 分销商城系统_分销小程序开发 -【微商来】 | 吹田功率计-长创耐压测试仪-深圳市新朗普电子科技有限公司 | 包装盒厂家_纸盒印刷_礼品盒定制-济南恒印包装有限公司 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 智能气瓶柜(大型气瓶储存柜)百科 | 中山市派格家具有限公司【官网】| 冷却塔厂家_冷却塔维修_冷却塔改造_凉水塔配件填料公司- 广东康明节能空调有限公司 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 深圳激光打标机_激光打标机_激光焊接机_激光切割机_同体激光打标机-深圳市创想激光科技有限公司 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 建筑资质代办_工程施工资质办理_资质代办公司_北京众聚企服 | 中药超微粉碎机(中药细胞级微粉碎)-百科 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | 十二星座查询(性格特点分析、星座运势解读) - 玄米星座网 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 广东护栏厂家-广州护栏网厂家-广东省安麦斯交通设施有限公司 | 浙江建筑资质代办_二级房建_市政_电力_安许_劳务资质办理公司 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 |