王秀珠
就是foreach循環(huán)啊,另外,你這給出的是模板代碼~先從控制器controller中查出購物車的數據然后$this->assign('data', $data);到模板,然后$this->display();到該控制器對應的模板。然后在模板中foreach循環(huán)出購物車數據即可。更多追問追答追問
您在看一下我心補充的問題!追答
多個id傳數組啊。前臺命名方式:
<input type="text" name="ids[]" value="{$ca.goods_id}" />追問根據id查商品,多個商品的傳過來,怎么接收多個id?。辉贑ontroller里,現在只能查詢出一個商品的信息。追答
。。。都給你說方法了,你還沒明白,我不知道怎么給你解釋了本回答被提問者和網友采納
通臂神猿
項目名稱,項目描述,項目技術,你的職責任務。通過以上幾點來寫,然后關鍵是面試講解要做到問什么都得答上來。希望我的回答可以幫到你,有什么不懂可以。
應愈
《php典型e68a84e8a2ad62616964757a686964616f31333361303564模塊與項目實戰(zhàn)大全》以實戰(zhàn)開發(fā)為原則,以php典型模塊和項目開發(fā)為主線,通過12個高質量的php典型模塊和6個php大型應用,向讀者揭示了web開發(fā)的整體結構,并詳盡地介紹php開發(fā)與建站的技術要點?!秔hp典型模塊與項目實戰(zhàn)大全》附帶1張dvd,內容是作者為本書錄制的全程多媒體語音教學視頻及本書所涉及的源代碼?!秔hp典型模塊與項目實戰(zhàn)大全》共22章,分為3篇。第1篇是php開發(fā)基礎,涵蓋的內容有web開發(fā)基礎、開發(fā)環(huán)境的安裝與配置、php語言參考、php簡單實例;第2篇為典型模塊開發(fā)與應用,涵蓋的內容有留言板模塊、注冊及登錄驗證模塊、上傳與下載模塊、內容采集器模塊、日程表模塊、聊天室程序、計費系統模塊、充值平臺模塊、在線調查模塊、wap資訊模塊、廣告管理模塊、文件管理器模塊;第3篇為項目開發(fā)實戰(zhàn),涵蓋的內容有內容管理系統、娛樂聯播軟件、寶藏游戲、圖片交易平臺、在線購物平臺、joomla擴展開發(fā)與快速建站?!秔hp典型模塊與項目實戰(zhàn)大全》內容全面、深入,既是優(yōu)秀的學習教程,也可用作參考手冊。書中的大量實例和深入分析均來自于作者多年的實際工作經驗,對于解決開發(fā)人員在實際開發(fā)中所面臨的各種問題有重要的借鑒意義。本書適合各層次的php程序員、愛好者和web開發(fā)人員閱讀。作譯者回到頂部↑本書提供作譯者介紹楊宇 開源愛好者。曾參與并領導多個大型互聯網項目。在Web開發(fā)、MySQL數據庫開發(fā)、負載均衡、分布式部署方案、大規(guī)模高并發(fā)系統設計等領域有豐富的架構設計及項目管理經驗?,F任某互聯網公司副總經理兼技術總監(jiān)。
自有元珠
php嚴程序,網站里面有php開發(fā)小型貼吧的視頻教程,合適初、中等水平程序員學習。
譚雄
php典型模塊與項目實戰(zhàn)大全》第1篇 php開發(fā)必備基礎第1章 web開發(fā)基礎 2教學視頻:26分鐘1.1 php簡介 21.1.1 php有什么特點 21.1.2 php能做什么 31.1.3 用什么技術來搭建php環(huán)境 41.2 html基礎 61.2.1 html文檔基本結構 61.2.2 簡單的html示例 61.2.3 創(chuàng)建網頁上的列表 71.2.4 創(chuàng)建圖像和鏈接 91.2.5 創(chuàng)建表單 101.3 javascript基礎 111.3.1 javascript在html中的嵌入方式 111.3.2 控制ie的彈出頁面 121.3.3 客戶端數據存儲機制cookie 151.3.4 客戶端事件驅動 171.4 小結 19.第2章 開發(fā)環(huán)境的安裝與配置 21教學視頻:63分鐘2.1 安裝和配置linux系統 212.1.1 基礎配置安裝 212.1.2 磁盤分區(qū)設置 222.1.3 引導裝載系統設置 242.1.4 開發(fā)包安裝及修改登錄配置 252.2 安裝和配置apache服務器 262.2.1 安裝web服務器apache 262.2.2 啟動和配置web服務器apache 272.2.3 測試web服務器apache 282.3 安裝和配置mysql數據庫 282.3.1 安裝mysql數據庫 282.3.2 配置mysql數據庫 292.3.3 測試mysql數據庫 302.4 安裝和配置php 312.4.1 下載php相關組件 312.4.2 安裝php相關聯的包 322.4.3 安裝及編譯php 342.4.4 修改apache配置文件 352.4.5 測試php 352.5 小結 36第3章 php語言參考 37教學視頻:29分鐘3.1 類型 373.1.1 類型分類 373.1.2 類型函數 383.2 變量 393.2.1 變量基礎 393.2.2 php中的變量 403.3 運算符與表達式 423.3.1 算術表達式 423.3.2 字符串表達式 433.3.3 邏輯操作表達式 443.3.4 其他運算符表達式 443.4 流程控制 463.4.1 if…else判斷 463.4.2 for循環(huán) 473.4.3 switch判斷 483.4.4 其他的流程控制 493.5 函數、類與對象 503.5.1 php中的函數 503.5.2 函數與變量作用域 513.5.3 類與對象 523.6 小結 54第4章 php簡單的例子 55教學視頻:24分鐘4.1 永遠的hello world 554.1.1 hello world的由來 554.1.2 php腳本嵌入html文檔 554.1.3 準備知識 564.1.4 hello world程序實現 574.2 訪客計數器 584.2.1 訪客計數器系統構架 584.2.2 創(chuàng)建計數器函數 594.2.3 計數器完整實現 604.3 組合條件查詢例子 614.3.1 組合條件查詢系統構架 614.3.2 數據庫設計 624.3.3 條件查詢實例的功能規(guī)劃 634.3.4 條件搜索頁面 634.3.5 結果處理及展示文件 654.4 小結 67第2篇 php典型模塊開發(fā)與應用第5章 留言板模塊(表單+session+驗證+分頁) 70教學視頻:33分鐘5.1 基礎設計 705.1.1 功能描述 705.1.2 流程描述 715.2 數據庫設計 725.2.1 訪客留言信息表 735.2.2 管理員回復留言表 735.3 留言瀏覽 735.3.1 留言瀏覽頁面設計 735.3.2 留言瀏覽程序設計 765.3.3 分頁處理技術 775.4 留言提交 795.4.1 留言提交頁面設計 795.4.2 留言有效性驗證 815.4.3 留言內容處理 825.5 留言管理 835.5.1 管理員登錄 835.5.2 留言回復 845.5.3 留言刪除 865.6 小結 86第6章 注冊及登錄驗證模塊(驗證+正則表達式+sql注入) 87教學視頻:32分鐘6.1 用戶信息表設計 876.2 界面設計 886.2.1 用戶注冊界面設計 886.2.2 登錄驗證界面設計 906.3 客戶端數據有效性驗證 916.3.1 javascript通用過濾函數 926.3.2 表單數據的有效性驗證 936.4 服務端數據有效性驗證 946.4.1 正則表達式判斷 956.4.2 用戶名排重檢測 976.4.3 sql注入驗證 996.5 已注冊用戶登錄 1016.5.1 客戶端用戶登錄驗證 1016.5.2 服務端用戶登錄狀態(tài)驗證 1026.5.3 標記登錄狀態(tài) 1046.6 小結 106第7章 上傳與下載模塊(php防盜鏈+ activexobject控件) 107教學視頻:31分鐘7.1 上傳與下載的實現原理 1077.1.1 php文件上傳的原理及實現 1077.1.2 php文件下載的原理及實現 1097.2 文件尺寸限制及異常處理 1117.2.1 javascript文件尺寸驗證 1117.2.2 php上傳文件涉及的參數 1137.3 數據庫設計 1147.4 文件上傳程序 1147.4.1 上傳文件的客戶端類型檢測 1157.4.2 上傳文件的服務器端處理 1157.4.3 將上傳文件信息歸檔到數據庫 1177.5 文件下載程序 1187.5.1 文件下載列表 1197.5.2 文件下載程序實現 1227.6 小結 123第8章 內容自動采集器模塊(爬蟲+fckeditor編輯器+任務接力) 124教學視頻:30分鐘8.1 內容自動采集器功能及采集原理 1248.1.1 url地址列表分析 1258.1.2 獲得內容頁面信息 1258.1.3 延時函數 1268.1.4 獲取全部列出形式 1268.1.5 分頁分析 1278.2 數據庫設計 1278.2.1 規(guī)則存儲表設計 1288.2.2 采集內容表設計 1288.3 采集器模塊界面設計 1298.3.1 采集器管理界面 1298.3.2 采集內容列表界面 1318.4 內容自動采集器程序實現 1318.4.1 采集規(guī)則管理程序 1328.4.2 爬蟲程序 1358.4.3 獲得需采集內容列表 1378.4.4 內容編輯器 1398.5 采集異常及處理 1418.5.1 抓取超時解決方法 1418.5.2 任務接力模式 1428.6 小結 143第9章 日程表模塊(php+ajax+xml) 144教學視頻:30分鐘9.1 ajax基礎 1449.1.1 http請求和響應基礎 1449.1.2 xmlhttprequest對象 1469.1.3 向服務器發(fā)送請求 1479.2 ajax中的服務端腳本 1489.2.1 ajax與xml文件進行交互式通信 1489.2.2 php生成xml 1519.2.3 數據庫驅動的ajax 1529.3 日程表數據庫設計 1549.4 日歷程序設計 1559.4.1 php生成的日歷 1559.4.2 日程表xml文檔 1589.4.3 日歷的完美實現 1599.5 日程表管理程序 1639.5.1 添加事件界面 1639.5.2 添加事件程序 1659.5.3 管理事件界面 1669.5.4 管理事件程序 1669.6 小結 169第10章 聊天室模塊(frameset頁面框架+session) 170教學視頻:21分鐘10.1 聊天室基礎設計 17010.1.1 主要實現功能描述 17010.1.2 業(yè)務流程描述 17110.1.3 邏輯結構設計 17110.2 聊天室數據庫設計 17210.3 訪問者引導 17310.3.1 引導頁面設計 17310.3.2 引導頁面程序 17410.4 聊天室程序 17510.4.1 編輯發(fā)送信息 17510.4.2 顯示全部信息 17810.4.3 聊天主題列表 18110.4.4 聊天室結構框架 18110.5 聊天室的優(yōu)化和完善 18310.6 小結 183第11章 計費系統模塊(原子操作+數據回滾rollback) 184教學視頻:33分鐘11.1 計費系統概述 18411.2 數據庫設計規(guī)劃 18511.2.1 用戶虛擬貨幣存儲表設計 18511.2.2 用戶交易明細表 18611.2.3 支付平臺訂單表 18711.3 核心功能函數 18811.3.1 使用charge_num()函數給指定用戶充值 18811.3.2 使用decrease_num()函數實現消費金額扣減 18811.3.3 使用transaction_record()函數記錄用戶的交易 18911.3.4 使用update_status_record()函數確認用戶付費操作 18911.3.5 使用count_user_num()函數更新充值次數 19011.4 應用程序接口 19011.4.1 充值接口程序 19111.4.2 扣費接口程序 19211.4.3 用戶余額查詢程序 19411.5 smarty模板引擎 19511.6 查詢充值記錄 19711.6.1 查詢充值記錄界面 19711.6.2 查詢充值記錄程序 19911.7 小結 202第12章 充值平臺模塊(md5加密+https協議) 203教學視頻:27分鐘12.1 充值平臺概述 20312.1.1 充值平臺實現目的 20312.1.2 開發(fā)調試流程概述 20312.2 測試接口說明 20412.2.1 簽名測試模塊 20412.2.2 下訂單測試模塊 20512.2.3 支付成功提貨測試模塊 20512.2.4 支付網關整體測試流程模塊 20512.3 通知支付結果方式的實現 20612.3.1 向支付網關提交支付請求信息 20612.3.2 支付網關將支付結果信息傳給程序的接口 20812.3.3 服務器間通知方式 20912.4 充值引導 20912.4.1 充值引導頁面設計 20912.4.2 充值引導程序 21312.5 服務端充值接口 21412.5.1 訂單確認 21412.5.2 接收網關支付通知 21712.5.3 支付結果顯示 21912.6 小結 222第13章 在線調查模塊(php+mysql+xml) 223教學視頻:24分鐘13.1 在線調查系統需求分析 22313.2 數據庫設計 22413.3 調查管理后臺 22513.3.1 調查管理后臺界面 22613.3.2 調查管理程序 22813.3.3 保存調查數據 23013.4 在線調查 23113.4.1 在線調查界面 23113.4.2 在線調查程序 23313.5 調查結果查看 23713.5.1 調查結果查看界面 23713.5.2 調查結果查看程序 23813.6 小結 241第14章 wap資訊模塊(php+wml+wap) 242教學視頻:29分鐘14.1 wap應用基礎 24214.1.1 wap系統概述 24214.1.2 wml基礎 24314.1.3 wap瀏覽器安裝與調試 24614.2 數據庫設計 24714.2.1 用戶資料表 24714.2.2 專輯資料表 24814.2.3 圖片資料庫表 24914.3 核心函數說明 25014.3.1 init_sid()函數 25014.3.2 編碼轉換函數 25114.3.3 wml格式輸出函數 25114.4 wap認證程序 25214.4.1 登錄認證程序 25214.4.2 手機號碼效驗程序 25314.4.3 付費內容認證程序 25414.5 wap資訊程序 25814.5.1 wap資訊首頁程序 25814.5.2 專輯圖片 26214.5.3 專輯列表 26414.5.4 圖片顯示程序 26514.5.5 圖片下載程序 26714.6 小結 268第15章 廣告管理模塊(javascript+iframe+smarty) 269教學視頻:30分鐘15.1 廣告管理概述 26915.1.1 廣告管理基本特征 26915.1.2 工作流程描述 27015.2 文件目錄結構設計及說明 27115.2.1 系統根目錄說明 27115.2.2 配置文件目錄說明 27215.2.3 函數庫文件目錄 27215.2.4 模板引擎目錄 27315.2.5 廣告管理模板目錄 27315.3 核心函數說明 27415.3.1 使用allen_thu()函數實現搜索和替換 27415.3.2 使用allen_file()函數生成文件函數 27415.3.3 使用isok()函數實現頁面跳轉 27515.3.4 使用error()函數報錯 27515.4 廣告管理界面程序 27615.4.1 顯示廣告列表 27615.4.2 內容搜索的實現 28115.5 廣告管理操作程序 28315.5.1 新增廣告操作 28315.5.2 廣告生成與編輯操作 28615.5.3 廣告刪除操作 29115.6 小結 293第16章 文件管理器(文件處理+smarty) 294教學視頻:28分鐘16.1 文件管理器概述 29416.1.1 文件管理器的基本特征 29416.1.2 工作流程描述 29416.2 文件處理函數說明 29516.2.1 目錄類函數 29516.2.2 文件操作函數 29716.2.3 字符串處理函數 30016.3 文件管理器 30316.3.1 文件和目錄瀏覽 30316.3.2 文件查看程序 31016.4 文件管理功能 31116.4.1 文件編輯 31116.4.2 文件更名 31516.5 小結 318第3篇 php項目開發(fā)實戰(zhàn)第17章 內容管理系統(oop+url rewrite+html編輯器) 320教學視頻:44分鐘17.1 cms設計基礎 32017.1.1 cms基本概念 32017.1.2 cms主要實現功能 32117.2 數據庫設計 32217.2.1 文章內容表 32217.2.2 注冊會員表 32317.2.3 管理員賬戶表 32517.2.4 網站相關信息表 32517.3 管理框架搭建 32617.3.1 創(chuàng)建管理框架 32617.3.2 登錄驗證程序 32717.3.3 導航欄部分 33017.3.4 側邊欄部分 33217.3.5 主體部分 33317.4 基礎類庫介紹 33517.4.1 公共類 33617.4.2 文章操作類 33617.4.3 管理員賬戶操作類 33817.4.4 注冊會員操作類 33917.5 后臺管理功能 34117.5.1 會員管理 34117.5.2 文章管理 34317.5.3 網站相關欄目 35017.6 小結 359第18章 娛樂聯播(rss內容聚合+ magpie抓取) 360教學視頻:56分鐘18.1 娛樂聯播基礎設計 36018.1.1 rss基本概念 36018.1.2 娛樂聯播流程 36118.2 數據庫設計 36218.2.1 欄目分類表 36318.2.2 rss數據源表 36318.2.3 采集新聞內容表 36418.3 核心函數說明 36418.3.1 使用get_ids()函數獲得指定分類下的所有子分類id 36518.3.2 使用index_list()函數獲取指定分類下的rss抓取內容 36518.3.3 使用content_info()函數獲取指定id下的信息 36618.4 娛樂聯播后臺管理 36618.4.1 rss欄目管理 36618.4.2 添加rss源 37918.4.3 已有rss源管理 38318.4.4 rss頭條管理 38818.4.5 rss信息源抓取 39118.5 娛樂聯播頻道 39518.5.1 娛樂聯播主首頁 39518.5.2 娛樂聯播欄目 40018.6 小結 404第19章 藏寶游戲(php+flash+api) 405教學視頻:53分鐘19.1 藏寶游戲概述 40519.1.1 藏寶游戲說明 40519.1.2 游戲道具描述 40619.2 數據庫設計 40719.2.1 用戶領獎信息表 40719.2.2 道具及獎品信息表 40819.2.3 物品詳細信息表 40919.2.4 用戶資料信息表 41019.2.5 游戲用戶的信息表 41119.3 基礎設計及說明 41219.3.1 程序分類描述 41219.3.2 文件及目錄功能描述 41319.3.3 api封裝包說明 41419.3.4 程序返回信息代碼說明 41919.4 后臺管理程序 42019.4.1 管理顯示程序 42019.4.2 管理操作程序 42419.5 藏寶游戲程序 43219.5.1 挖寶游戲程序 43219.5.2 游戲用戶信息程序 43919.6 小結 441第20章 圖片交易平臺(mvc設計模式) 442教學視頻:49分鐘20.1 系統概述 44220.1.1 基礎架構設計 44220.1.2 核心功能描述 44420.2 mvc實現原理 44520.2.1 mvc基礎 44520.2.2 model(模型) 44620.2.3 view(視圖) 44720.2.4 controller(控制器) 44820.3 數據庫設計 44920.3.1 需求分析 44920.3.2 數據庫e-r關系圖 44920.3.3 數據表設計 45120.4 圖片搜索及展示 45420.4.1 圖片列表 45420.4.2 圖片搜索 46020.4.3 圖片詳情 46620.5 圖片收藏及訂購 47020.5.1 圖片收藏 47020.5.2 圖片購物車 47320.5.3 訂單處理流程 47920.6 用戶管理中心 48620.6.1 用戶登錄驗證 48720.6.2 訂單管理 49020.6.3 收藏夾管理 50520.6.4 出版社信息管理 51220.7 小結 517第21章 在線購物平臺(php+jquery+b2c) 518教學視頻:55分鐘21.1 系統概述 51821.1.1 流程概述 51921.1.2 功能說明 52021.1.3 文件目錄結構設計及說明 52121.2 數據庫設計 52321.2.1 數據設計概述 52321.2.2 產品數據表 52421.2.3 產品附件數據表 52521.2.4 會員數據表 52621.2.5 訂單數據表 52721.3 核心程序說明 52821.3.1 通用表格類 52821.3.2 購物車類 53221.3.3 文件上傳類 53321.3.4 圖片顯示相關類 53921.3.5 公用和配置文件 54121.4 會員管理 54421.4.1 會員注冊 54521.4.2 會員登錄 54721.4.3 會員資料管理界面 54721.5 產品管理 55021.5.1 產品信息管理 55021.5.2 產品圖片管理 55421.6 產品展示與購物車 55621.6.1 購物車 55621.6.2 產品詳細頁實現 55821.6.3 產品列表 56021.7 訂單管理 56421.8 產品搜索 56721.9 小結 569第22章 joomla快速建站模塊(php+joomla+xml) 570教學視頻:47分鐘22.1 joomla基礎 57022.1.1 joomla介紹 57022.1.2 joomla整體架構 57122.2 joomla目錄及文件說明 57322.2.1 根目錄說明 57322.2.2 模板目錄說明 57322.2.3 組件目錄說明 57522.2.4 模塊目錄說明 57622.2.5 插件目錄說明 57722.3 joomla數據庫 57822.3.1 joomla數據庫基礎 57822.3.2 joomla數據庫邏輯關系 58122.3.3 joomla數據庫表說明 58122.4 下載與安裝 58822.4.1 下載及安裝環(huán)境需求 58922.4.2 文件包解壓及配置設置 58922.4.3 joomla的安裝向導 59022.5 后臺基礎管理 59422.5.1 權限角色劃分 59422.5.2 后臺概述 59522.5.3 語言管理 59622.5.4 媒體文件管理 60122.5.5 全局設置 60322.6 后臺內容管理 60422.6.1 菜單管理 60522.6.2 類別管理 60722.6.3 文章管理 61022.7 插件、組件和模塊開發(fā) 61322.7.1 插件詳解 61422.7.2 組件開發(fā) 61922.7.3 模塊開發(fā) 62522.8 快速建站實例 62922.8.1 系統介紹 63022.8.2 添加網站內容 63022.8.3 安裝圖片展示插件 63222.8.4 安裝留言板組件 63322.8.5 模板基礎及規(guī)劃 63522.8.6 創(chuàng)建導航欄及關聯菜單 64022.9 小結 641
巨輪
沒有什么藥注意多寫代碼,多體驗代碼,多看別人的代碼就行
我現在看公司的實際項目,有時候會被一些比如模塊調用,外部配置的全局變量,搞不清楚位置;一個個調用關系有時候犯糊涂,這是不是我PHP剛入門,還沒找到感覺和經驗?
這很正常啊,慢慢知道調用,你就對對象和框架就熟悉了
孫昌祚
PL,PHP 標準庫(Standard PHP Library) ,此從 PHP 5.0 起內置的組件和接口,并且從 PHP5.3 已逐漸的成熟。SPL 其實在所有的 PHP5 開發(fā)環(huán)境中被內置,同時無需任何設置。似乎眾多的 PHP 開發(fā)人員基本沒有使用它,甚至聞所未聞。究其原因,可以追述到它那陽春白雪般的說明文檔,使你忽略了「它的存在」。SPL 這塊寶石猶如鐵達尼的「海洋之心」般,被沉入海底。而現在它應該被我們撈起,并將它穿戴在應有的位置 ,而這也是這篇文章所要表述的觀點。那么,SPL 提供了什么?SPL 對 PHP 引擎進行了擴展,例如 ArrayAccess、Countable 和 SeekableIterator 等接口,它們用于以數組形式操作對象。同時,你還可以使用 RecursiveIterator、ArrayObejcts 等其他迭代器進行數據的迭代操作。它還內置幾個的對象例如 Exceptions、SplObserver、Spltorage 以及 splautoloadregister、splclasses、iteratorapply 等的幫助函數(helper functions),用于重載對應的功能。這些工具聚合在一起就好比是把多功能的瑞士軍刀,善用它們可以從質上提升 PHP 的代碼效率。那么,我們如何發(fā)揮它的威力?重載 autoloader如果你是位「教科書式的程序員」,那么你保證了解如何使用 __autoload 去代替 includes/requires 操作惰性載入對應的類,對不?但久之,你會發(fā)現你已經陷入了困境,首先是你要保證你的類文件必須在指定的文件路徑中,例如在 Zend 框架中你必須使用「_」來分割類、方法名稱(你如何解決這一問題?)。另外的一個問題,就是當項目變得越來越復雜, __autoload 內的邏輯也會變得相應的復雜。到最后,甚至你會加入異常判斷,以及將所有的載入類的邏輯如數寫到其中。大家都知道「雞蛋不能放到一個籃子中」,利用 SPL 可以分離 __autoload 的載入邏輯。只需要寫個你自己的 autoload 函數,然后利用 SPL 提供的函數重載它。例如上述 Zend 框架的問題,你可以重載 Zend loader 對應的方法,如果它沒有找到對應的類,那么就使用你先前定義的函數。復制代碼代碼如下:<?phpclass MyLoader { public static function doAutoload($class) { // 本模塊對應的 autoload 操作 }}spl_autoload_register( array('MyLoader', 'doAutoload') );?>正如你所見, spl autoload register 還能以數組的形式加入多個載入邏輯。同時,你還可以利用spl autoload unregister 移除已經不再需要的載入邏輯,這功能總會用到的。迭代器迭代是常見設計模式之一,普遍應用于一組數據中的統一的遍歷操作。可以毫不夸張的說,SPL 提供了所有你需要的對應數據類型的迭代器。有個非常好的案例就是遍歷目錄。常規(guī)的做法就是使用 scandir ,然后跳過「.「 和 「..」,以及其它未滿足條件的文件。例如你需要遍歷個某個目錄抽取其中的圖片文件,就需要判斷是否是 jpg、gif 結尾。下面的代碼就是使用 SPL 的迭代器執(zhí)行上述遞歸尋找指定目錄中的圖片文件的例子:復制代碼代碼如下:<?phpclass RecursiveFileFilterIterator extends FilterIterator { // 滿足條件的擴展名 protected $ext = array('jpg','gif'); /** * 提供 $path 并生成對應的目錄迭代器 */ public function __construct($path) { parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path))); } /** * 檢查文件擴展名是否滿足條件 */ public function accept() { $item = $this->getInnerIterator(); if ($item->isFile() && in_array(pathinfo($item->getFilename(), PATHINFO_EXTENSION), $this->ext)) { return TRUE; } }}// 實例化foreach (new RecursiveFileFilterIterator('/path/to/something') as $item) { echo $item . PHP_EOL;}?>你可能會說,這不是花了更多的代碼去辦同一件事情嗎?那么,查看上面的代碼,你不是擁有了具有高度重用而且可以測試的代碼了嗎 :)追問
復制的,有意思嗎本回答被網友采納
周韋森
我有啊不過怕你看不懂啊,不信發(fā)你看看啊,這是個OA系統
閻晏
兄弟連 或者傳智