一、錯誤處理
1.1錯誤種類
1.1.1Notices
比如沒有定義變量確使用了會報notice錯誤,只是提醒注意,不影響后續代碼執行
1.1.2Warnings
這是警告錯誤,比如include引入一個并不存在的文件,不影響后續代碼執行
1.1.3Fatal Error
這是致命錯誤,影響后續代碼執行,比如require一個并不存在的文件,或者使用未定義的函數等等
1.2屏蔽錯誤
1.2.1修改php.ini文件
這種方式會對當前項目下的所有php文件都起作用
我們點擊其他選項菜單,選擇php.ini文件
然后我們按ctrl+f搜索display_errors
修改完以后要保存php.ini文件,注意一定要重啟phpstudy
1.2.2設置當前php文件
如果需要對當前的php文件設置錯誤顯示或者關閉,可以設置如下:
我們的php.ini是關閉所有的錯誤的,當前文件是打開錯誤提示的,所以對當前文件設置是否顯示錯誤的優先級要高些。
1.3錯誤級別
E_NOTICE 這是通知錯誤級別
E_WARNING 這是警告錯誤級別
E_ERROR 這是致命錯誤級別
注意測試下面的時候把php.ini的display_error=’On’
1.3.1只顯示通知錯誤
1.3.2只顯示警告錯誤
1.3.3顯示警告錯誤或者致命錯誤
1.3.4顯示除了某錯誤以外的其他錯誤
顯示除了通知以外的其他錯誤
二、函數
2.1概念
函數可以重復執行的代碼塊。函數的特點是不調用不執行。函數調用是用函數名()
語法:(聲明函數)
function 函數名(形參1,形參2…){重復執行的代碼塊
}
函數名(實參1,實參2)
還有下面的寫法:(可變函數)
2.2return
return有兩個作用:
1、 是把函數運算的結果返回出去,比如上面的函數內部是經過了一系列復雜的邏輯判斷,最終我們想拿到圖片地址,所以用return把地址返回出去,后面調用函數的時候可以拿到這個地址。
2、 我們上面函數內部寫了return以后,后續的任何代碼都不會執行,因為return還有終止代碼運行的作用。
2.3默認值
備注:
函數參數可以設置默認值,但是必須大寫(以常理的形式),如果設置了默認值,不傳第二個參數就是以默認值計算,如果傳遞了就按傳遞的值計算。
2.4值傳遞
如果函數的參數是以變量的形式傳遞的 默認是值傳遞 內部變量$a
變化并不會影響外部變量$num.
2.4引用傳遞
下面的因為是引用傳遞 如果變量a和a和a和num指向同一塊數據2,如果其中一個變化了,另一個也會跟著變化
原理如下:
2.5作用域
js的作用域如下:
函數外部定義的變量叫全局變量,函數內部定義的變量叫局部變量,js函數內部能獲取外部的全局變量,外部獲取不到內部的局部變量。
php的作用域如下:
函數外部定義的變量叫全局變量,函數內部定義的變量叫局部變量,但是不同的是php函數內部獲取不到外部的全局變量,函數外部也拿不到內部的局部變量。
2.6函數內部獲取全局變量的方式
2.6.1global
這種方法相當于是在函數內部創建了一個和外部全局變量同名的一個局部變量,然后就可以正常獲取了.這兩個變量是引用關系,內部變化了,外部也會跟著變化
2.6.2$GLOBALS
如果用上面的方法,$GLOBAS是一個超全局數組,它的鍵名就是自己定義的變量的名字,值就是自己定義變量的值
2.7練習
2.7.1練習1
寫函數創建長度為10(形參)的數組,數組中的元素為遞增的奇數,首項為1
2.7.2練習2
定義一個函數輸出a(形參)行b(形參)列的表格
2.7.3練習3
以封裝格式,求出班級平均分。
假設傳入的格式如下:
$arr=array(array('語文'=>80, '數學'=>70, '英語'=>90),array('語文'=>80, '數學'=>70, '英語'=>90),array('語文'=>80, '數學'=>70, '英語'=>90)
);
答案如下:
2.7.4練習4
以封裝形式,用戶可以在當前購物車中選購5件商品,商品數量,商品價位不確定,請返回應付出的總價是多少?
商品一:價格:N元,購買數量:N件,小計:N元
商品二:價格:N元,購買數量:N件,小計:N元
商品三:價格:N元,購買數量:N件,小計:N元
總計:N元
答案:
$arr1=array(array('num'=>2, 'price'=>70),array('num'=>2, 'price'=>60),array('num'=>1, 'price'=>80)
);
2.7.5練習5
以封裝格式,從一個數組中查詢其某個單元是否存在,之后對其加紅顏色顯示。