




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、昨日回顧2文件加載3綜述:3文件路徑問題31, 相對路徑:32,絕對路徑:43,只有文件名(無路徑)4文件載入執(zhí)行過程5幾個區(qū)別:6return關(guān)鍵字7錯誤處理8錯誤的分類8錯誤的分級9系統(tǒng)錯誤:9用戶自定義錯誤10其他:10錯誤的觸發(fā)10正常觸發(fā):10人工觸發(fā)11錯誤的顯示控制11記錄錯誤日志12自定義錯誤處理14昨日回顧位運算:基本位運算規(guī)則:按位與:1&1=1, 1&0=0; 0&1=0; 0&0=0按位或:1|1=1, 1|0=1; 0|1=1; 0|0=0按位非:1=0, 0=1按位異或:11=0, 10=1; 0&1=1; 00=0對常規(guī)整數(shù)的按位運算:按位與:按位或,按位左移,按
2、位右移,按位非:按位異或:$v1 = 9;/00001001$v2 = 19;/00010011 00011010這是24 + 23 + 21 = 16+8 + 2 = 26原碼就是將一個數(shù)字通過數(shù)學(xué)方法轉(zhuǎn)換得到的二進制形式。并規(guī)定:第一個位為符號位,0表示正數(shù),1表示負數(shù)。但是,在cpu內(nèi)部,計算都是以補碼的形式進行。反碼:正數(shù)的反碼:是其本身;負數(shù)的反碼:符號位不變,其余每一位取反。補碼:正數(shù)的補碼:是其本身;負數(shù)的補碼:符號位不變,反碼加1。管理一組事物的開關(guān)狀態(tài):有多個數(shù)據(jù),其都只有2個狀態(tài)(真,假,true,false.),并且可以將他們確定位置(順序) 那么,我們就可以用一個數(shù)字(
3、整數(shù))就可以實現(xiàn)著多個數(shù)據(jù)的“統(tǒng)一管理”首先,設(shè)定多個基礎(chǔ)數(shù)據(jù),通常用常量:D1 = 1;D2 = 2; D3=4;D4 = 8;D5 = 16;. 則:變量$state = 17;/一個隨便的數(shù)字,就可以代表著多個數(shù)據(jù)的任意可能的組合。常見需求就有3個:1,確定某個數(shù)據(jù)的當(dāng)前值(狀態(tài)):if( $state & Dn 0)為真else為假;n代表任意某個數(shù)據(jù)2,設(shè)定某個數(shù)據(jù)為真:$state = $state | Dn;/n為1,2,3,。之一。3,設(shè)定某個數(shù)據(jù)為假:$state = $state & Dn;/n為1,2,3,。之一。循環(huán):3要素:循環(huán)變量初始化;循環(huán)變量的條件判斷;循環(huán)變量
4、值的改變;2中斷:break $n;/完全終止(退出)指定的第n層循環(huán),continue $n;/停止正在執(zhí)行的指定的第n層循環(huán),并從循環(huán)的起始位置“從新開始”。文件加載綜述:有4個文件加載的語法形式(注意,不是函數(shù)):include, include_once, require, require_once;他們的本質(zhì)是一樣的,都是用于加載/引入/包含/載入一個外部文件到當(dāng)前php代碼中來。他們只在2個方面有細微區(qū)別:1,如果加載文件失敗,則有不同的處理規(guī)則;include和require不同2,如果加載文件重復(fù),則有不同的處理規(guī)則;XXX和XXX_once不同;3,他們都是語法結(jié)構(gòu),而非函數(shù)
5、,使用形式可以有兩種:3.1 include 文件路徑;3.2 include (文件路徑);文件路徑問題不管是哪個載入語法結(jié)構(gòu),都涉及到文件路徑問題。主要有3種情況:1, 相對路徑:就是以“./”, 或“./”,開頭的路徑。./表示當(dāng)前網(wǎng)頁文件的所在位置(文件夾,目錄);./表示當(dāng)前網(wǎng)頁文件的所在位置的上一級位置(文件夾,目錄)這種相對位置對一個網(wǎng)站中的所有內(nèi)容(包括php,html,圖片,css,js文件)都有效。2,絕對路徑:有2種絕對路徑:本地絕對路徑:window系統(tǒng):c:/d1/d2/page3.phpunix系列系統(tǒng):/d1/d2/page3.php網(wǎng)絡(luò)絕對路徑:3,只有文件名(
6、無路徑)在php的include語法(其他3個也一樣)中,如果只給出文件名,而沒有給出路徑,則此時有其內(nèi)部找到該文件的規(guī)則,如下:1,首先在系統(tǒng)設(shè)置的include目錄中查找:在php.ini配置文件中,有:include_path設(shè)定:可見默認無設(shè)定;該設(shè)定其實可以設(shè)定多個目錄,其間用分號分開;系統(tǒng)會按順序依次找要載入的文件。修改php.ini中的include_path為:我們也可以在腳本中設(shè)定:我們也可以使用另一個函數(shù)來獲取當(dāng)前的include_path的值:2,上面沒找到,在當(dāng)前執(zhí)行的網(wǎng)頁文件所在目錄(所謂當(dāng)前工作目錄)查找:所謂當(dāng)前網(wǎng)頁文件,就是地址欄中顯示的那個文件名。3,上面還沒
7、找到,則在當(dāng)前include命令所在文件的所在目錄中查找:如果一個文件(A)包含文件B,在文件B中又有include命令包含文件C,此時B中的路徑問題就可能發(fā)生這種情況。文件載入執(zhí)行過程 從include語句處退出php腳本模式(進入html代碼模式) 載入include語句所設(shè)定的文件中的代碼,并執(zhí)行之(如同在當(dāng)前文件中一樣) 退出html模式重新進入php腳本模式,繼續(xù)之后的代碼舉例:4include_yuanli.php中:page3.php中:4include_yuanli.php中的代碼,相當(dāng)于:幾個區(qū)別: include_once 和include的區(qū)別:前者能夠保證不會被重復(fù)加載
8、 require 和 include的區(qū)別:o 如果被包含文件不,存在,即引用失?。ǔ鲥e)時,include發(fā)出警告并繼續(xù)執(zhí)行后續(xù)代碼,require直接終止。 require_once 和 require的區(qū)別:前者能夠保證不會被重復(fù)加載return關(guān)鍵字以前,我們只在函數(shù)中出現(xiàn)return關(guān)鍵字,其作用是:結(jié)束函數(shù),并可以返回數(shù)據(jù);return;/單純結(jié)束; return $x;/結(jié)束,并返回數(shù)據(jù)$x;那么,被包含(載入)的文件中的return 關(guān)鍵字也具有同樣的作用!結(jié)果:再來看看return返回值的形式:結(jié)果為:錯誤處理錯誤的分類語法錯誤:程序沒法運行,直接提示語法錯誤。運行時錯誤:只
9、有程序運行到某行,或在某些特定的情形下運行才會發(fā)生的錯誤。邏輯錯誤:程序從頭到尾運行都沒有發(fā)生(并提示)錯誤,但程序運行計算的結(jié)果是錯誤的。我們程序員主要面對的和要處理(應(yīng)付)的錯誤,就是運行時錯誤。錯誤的分級在php中,將各種錯誤,分門別類,依據(jù)不同的嚴重程度和產(chǎn)生的來源(機制),將各種錯誤分為大約10幾個級別。每個級別的錯誤,都對應(yīng)一個內(nèi)部的名稱系統(tǒng)常量!系統(tǒng)錯誤:E_ERROR:系統(tǒng)嚴重錯誤一發(fā)生,程序立即停止執(zhí)行。該錯誤一般希望馬上。E_WARNING:系統(tǒng)警告一發(fā)生,提示錯誤,并繼續(xù)執(zhí)行。通常該錯誤希望能夠在“下一工作日”去處理掉(解決)。E_PARSE:語法錯誤一發(fā)生,提示錯誤,而
10、且代碼完全不會運行在運行之前先檢查語法。E_NOTICE:系統(tǒng)提示一發(fā)生,提示錯誤,并繼續(xù)執(zhí)行。發(fā)個郵件通知一下,自己安排時間有空去解決。他們的本質(zhì)是什么呢?可見他們只是一個系統(tǒng)內(nèi)部常量(整數(shù)常量);實際上,這些常量(代號)是供我們對對該類錯誤進行“控制”的標(biāo)示符而已。用戶自定義錯誤只有3個:E_USER_ERROR;E_USER_WARNING;E_USER_NOTICE;我們可以在程序中,自己創(chuàng)建(生成)錯誤是為了針對某些數(shù)據(jù)的不合理情形,而創(chuàng)建的錯誤。比如:讓用戶填寫年齡, 填18是ok,但填寫188就是不合理從數(shù)字角度本身是沒有問題。其他:E_ALL;代表所有錯誤表示它可以“包括”錯誤
11、。E_STRICT: 代表“嚴格性”語法檢查錯誤某種語法是可以執(zhí)行的,但在當(dāng)前的php版本中是不歡迎使用。錯誤的觸發(fā)正常觸發(fā):程序運行時確實發(fā)生了運行時錯誤也可能是語法檢查錯誤。3種常見的運行時錯誤:人工觸發(fā)就是由程序員通過程序代碼而“產(chǎn)生”一個錯誤。語法:trigger_error(“錯誤提示” , 用戶錯誤代號);應(yīng)用中,通常是需要檢測(判斷)數(shù)據(jù)的有效性,以決定是否觸發(fā)相應(yīng)錯誤,比如:錯誤的顯示控制網(wǎng)頁中顯示(提示)錯誤信息,是可以進行控制的,有種途徑:,在文件中設(shè)定,對所有程序都有效;,在當(dāng)前腳本文件中,只對當(dāng)前腳步文件有效。錯誤的顯示有個方面可以進行控制;,設(shè)定是否顯示:displa
12、y_error: php.ini中;display_error = On;/表示顯示, Off表示不顯示;(顯示)(不顯示)腳本中: ini_set(“display_error”, 1); /1表示顯示, 0表示不顯示,也可以用true,false腳本中的設(shè)定優(yōu)先級高。,設(shè)定顯示哪些級別的錯誤依賴與第一項設(shè)定為顯示的情況。文件中:error_reporting = E_NOTICE;/只顯示E_NOTICE錯誤error_reporting = E_NOTICE | E_WARNING;/顯示E_NOTICE和E_WARNING錯誤error_reporting = E_NOTICE | E
13、_WARNING | E_USER_ERROR;/顯示E_NOTICE和E_WARNING和E_USER_ERROR錯誤解釋上一行:E_NOTICE:00000000 00001000E_WARNING: 00000000 00000010E_USER_ERROR:00000001 00000000或運算(|)00000001 00001010實際上,在開發(fā)階段,常用的是:error_reporting = E_ALL | E_STRICT;它是這樣的結(jié)果:E_ALL01110111 11111111E_STRICT: 00001000 00000000或運算(|)01111111 11111
14、111可見,E_ALL并非真的表示“所有”,而是只有E_ALL | E_STRICT才真的表示所有。繼續(xù):如果在顯示“所有”錯誤的基礎(chǔ)上,只想“關(guān)閉”個別少數(shù)錯誤呢?跟狀態(tài)數(shù)據(jù)的設(shè)定(關(guān)閉)道理一樣,只要這么做:error_reporting = E_ALL | E_STRICT & E_NOTICE;/只關(guān)閉了E_NOTICE錯誤提示error_reporting = E_ALL | E_STRICT & E_NOTICE & E_WARNING;/關(guān)閉了2個在代碼中設(shè)定:ini_set(“error_reporting”, E_NOTICE);/只顯示E_NOTICE錯誤ini_set(“
15、error_reporting”, E_NOTICE | E_WARNING);/顯示E_NOTICE和E_WARNING錯誤ini_set(“error_reporting”, E_ALL | E_STRICT & E_NOTICE);/只關(guān)閉E_NOTICE錯誤ini_set()含義可以設(shè)定幾乎所有php.ini中的設(shè)定項,形式如下:ini_set(“設(shè)定項名稱” ,值);/這種設(shè)定都只對當(dāng)前腳本有效,而且無需重啟apache,很方便。另一個對應(yīng)函數(shù)是:ini_get(“設(shè)定項名稱”);/用于獲取某項的值。記錄錯誤日志在開發(fā)階段,我們通常都是顯示所有錯誤意圖解決錯誤在產(chǎn)品階段,我們通常都是
16、隱藏所有錯誤并同時將錯誤信息記錄到文件中錯誤日志文件。我們可以自己查看錯誤日志以解決開發(fā)階段沒有發(fā)現(xiàn)的錯誤問題。記錄錯誤日志同樣有2種途徑:1,在Php.ini文件中設(shè)定:log_errors = On;/用于設(shè)定是否記錄錯誤日志,On記錄,Off不記錄error_log = “錯誤日志文件名”;/設(shè)定錯誤日志的文件名此時,該文件沒有給定路徑,則系統(tǒng)會在每個文件夾下建立該文件并記錄進去。可見,頁面中顯示的錯誤提示內(nèi)容,和日志文件中記錄的錯誤信息內(nèi)容,一樣。error_log還有一個特殊值可以使用: error_log = syslog;/此時不會記錄錯誤日志文件,而是把錯誤信息寫入到系統(tǒng)錯誤日
17、志中則結(jié)果為:2,在當(dāng)前腳本文件中:ini_set(“l(fā)og_errors” , On);/或者Offini_set(“error_log”, err1.log);/后綴隨便用ini_set(“error_log”, err2.txt);ini_set(“error_log”, err3.html);int_set(“error_log”, syslog);/記錄到操作系統(tǒng)日志中。自定義錯誤處理以上的錯誤處理,不管是顯示錯誤,還是記錄錯誤日志,都是php語言內(nèi)部實現(xiàn)的。我們只是幾個簡單的設(shè)定是否顯示或是否記錄或顯示哪些,或記錄到哪里。則:自定義錯誤處理,就可以讓我們自己完全控制錯誤的提示內(nèi)容!做法非常簡單:1,設(shè)定要用來進行自定義處理錯誤的自定義函數(shù)名;2,自
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國精制老抽醬油行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國汽車助力轉(zhuǎn)向泵油箱行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國莫氏錐度變徑套數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國礦井提升機數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國簡易物架數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國科普模型數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國烤漆打包鋼帶數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國抽丸刀數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國彩色轉(zhuǎn)黑白零照度攝像機數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國塑料椅數(shù)據(jù)監(jiān)測研究報告
- 2024年影視藝術(shù)概論復(fù)習(xí)考試題(附答案)
- 舞臺燈光設(shè)計與光影藝術(shù)考核試卷
- 第10輯:句子表達效果(原句vs改句)解題指導(dǎo)-2023年高考語文一輪復(fù)習(xí)修辭手法與句子表達效果專練
- 園林綠化一月份養(yǎng)護計劃
- 2024年輔警招考時事政治考題及答案(100題)
- 小腸梗阻的護理
- 手拉葫蘆安全技術(shù)操作規(guī)程
- 空氣動力學(xué)數(shù)值方法:有限元法(FEM):邊界條件處理與應(yīng)用
- 2024-2025年高中化學(xué) 第1章 第3節(jié) 第1課時 電離能及其變化規(guī)律教案 魯科版選修3
- 無錫商業(yè)職業(yè)技術(shù)學(xué)院雙高建設(shè)申報書
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
評論
0/150
提交評論