黑馬程式設計師PHP學習筆記

2021-10-08 13:37:45 字數 4243 閱讀 6586

因為php在html中只是做資料輸出,輸出通常伴有條件判斷和迴圈操作,   

因此php提供了對應分支結構和迴圈結構的替代語法:全部對應乙個模式

左大括號使用end+對應的起始標記替代

例如:for(){}可以用for(): endfor;代替

if(){}可以用if(): endif;替代

有四種形式:

include:包含檔案

include_once:系統會自動判斷檔案包含過程中,是否已經包含過(乙個檔案最多被包含一次

require;與include相同

require_once:與include_once相同

格式為:include "檔名"或者include (「檔名」)(這個檔案要和本php檔案在同一路徑下)

include和include_once的區別:

include系統會碰到一次,執行一次;如果對同乙個檔案進行多次載入,那麼系統會執行多次

include_once系統碰到多次也只會執行一次

include和require的區別:

include包含的檔案即使出錯了,也不影響後續**的執行

require要求較高,如果包含出錯,後續**不在執行

魔術常量的值會跟著環境變化,但使用者改變不了

dir: 當前被執行的指令碼所在電腦的絕對路徑

file: 當前被執行的指令碼所在電腦的絕對路徑,帶自己檔案的名字

line: 當前所屬行數

namespace:當前所屬的命名空間

class: 當前所屬類

method: 當前所屬方法(傳回類名稱和函式名稱)

function:當前函式名(僅傳回函式名稱

1)錯誤分類:語法錯誤(parse error),執行時錯誤(runtime error),邏輯錯誤

2)錯誤代號(所有看到的錯誤**在php中都被定義成了系統常量,可以被直接使用)

1.系統錯誤

e_parse:編譯錯誤,**不會執行

e_error:fatal error致命錯誤,導致**不能繼續進行

e_warning:警告錯誤,不會影響**執行,可能會有其他結果

e_notice: 通知錯誤,不會影響**執行

2.使用者錯誤:使用者在使用自定義錯誤觸發時,會使用到底錯誤代號,系統不會用到

e_user_error

r_user_warning

w_user_notice

3.其他

e_all:代表所有錯誤,在進行錯誤控制的時候使用比較多,建議在開發過程中使用

3)人為觸發錯誤可以用:trigger_error(「除數不能為0」);如果後面的執行與這個錯誤無關,則會繼續進行,如果有關則報錯

header(『content-type:text/html;charset=utf-8』)

要那些錯誤該顯示,以及該如何顯示

在php中,有兩種方式來設定當前指令碼的錯誤處理

1)php的配置檔案:全域性配置:php.ini檔案

display_errors():是否顯示錯誤

error_reporting():顯示什麼級別的錯誤(如果括號沒有引數代表獲取當前系統錯誤處理對應的級別)

2)也可以在執行的php指令碼中去設定(在指令碼中定義的配置項級別比配置檔案高)

error_reporting():設定對應的錯誤顯示級別

ini_set(『配置檔案中的配置項』,『配置值』):ini_set(『error』,e_all);ini_set(『display_errors』,1)

在生產過程中,一般吧錯誤儲存在日誌檔案中讓程式設計師修改:需要在php配置檔案中或者**中(ini_set)設定對應的error_log配置項

':在單引號字串中顯示單引號

":在雙引號字串中顯示雙引號

\r:代表回車(理論上是回到當前行的首位置)

\n:代表新一行

\t:類似tab鍵,輸出四個空格

$:在php中使用$符號作為變數符號,因此需要特定識別

(如果字串使用單引號定義,那只能識別』這個轉義符,要是使用雙引號定義,就只是不能識別』這個轉義符)

1)基本函式strlen():得到字串的長度(位元組為單位),中文在utf-8中站3個位元組

2)多位元組字串的長度問題:包含中文的長度

3)多位元組字串擴充套件模組:mbstring擴充套件(mb:multi bytes)

首先要載入php的mbstring擴充套件:開啟配置檔案php.ini, 找到extension=php_mbstring.dll把這行前面的;去掉,然後再重啟apche

1)轉換函式

implode(連線方式,陣列):將陣列中的元素按照某個規則連線成乙個字串

explode(分割字元,目標字串):將字串按照某個格式進行分割,變成陣列

str_split(字串,字元長度):按照指定長度拆分字串得到陣列

2)擷取函式

trim(字串,[指定字元]):本身預設是用來去除兩邊的空格(中間不行),但也可以指定要去除的內容,是按照指定的內容迴圈去除兩邊有的內容,是按照指定的內容迴圈去除兩邊有的內容,知道碰到乙個不是目標字元為止

ltrim():去除左邊的

rtrim():去除右邊的

3)擷取函式

substr(字串,起始位置,[長]):指定位置開始擷取字串,可以擷取指定長度(不指定到最後)

strstr(字串,匹配字元):從指定位置開始,擷取到最後(可以用來去檔案字尾名)

4)大小寫轉換函式

strtolower():全部小寫

strtoupper():全部大寫

ucfirst():首字母大寫

5)查詢函式

strpos():判斷字元在目標字串**現的位置(首次),返回的是索引號,如果沒找到返回false

strrpos():判斷字元在目標字串中最後出現的位置

6)替換函式

str_replace(匹配目標,替換的內容,字串本身):將目標字串中部分字元進行替換

7)格式化函式

printf/spintf(輸出字串有佔位符,順序佔位內容):格式化輸出資料

8)其他

str_repeat():重複某個字串n次

str_shuffle():隨機打亂字串

1)排序函式(都在原陣列上修改的)(都是按照ascii碼進行比較,所以英文也可以比較,看第乙個字母的ascii值)

sort():順序排序(下標重新排列)

rsort():逆序排序

asort():順序排序(下標保留)

arsort():逆序排序

ksort():按照鍵名(下標)順序排序

krsort():逆序排序

shuffle():隨機打亂陣列元素,陣列下標會重排

2)指標函式

reset():重置指標,將陣列指標回到首位

end():重置指標,將陣列指標指到最後乙個元素

next():指標下移,取得下乙個元素的值

prev():指標上移,取得上乙個元素的值

注意:next和prev會移動指標,有可能會導致指標移動到最前或是最後(離開陣列),導致陣列不能使用,這時通過next和prev不能回到正確的指標位置,只能通過end或reset進行指標重置

current():獲取當前指標對應的元素值

key():獲取當前指標對應的下標值

3)其他函式

count():統計陣列元素個數

array_push():往陣列中加入乙個元素(陣列後面)

array_pop():從陣列中取出乙個元素(陣列後面)

array_shift():從陣列中取出乙個元素(陣列前面)

array_unshift():從陣列中加入乙個元素(陣列前面)

array_reverse():陣列元素反過來

in_array():判斷乙個元素在陣列中是否存在

array_keys():獲取乙個陣列的所有下標,返回乙個索引陣列

array_values():獲取乙個陣列的所有值,返回乙個索引陣列

黑馬程式設計師 學習筆記

windows phone 7手機開發 net培訓 期待與您交流!filestream sqlconnection實現了idispose介面,用完需要被釋放掉 using sqlconnection conn new sqlconnection 用完被釋放掉了 當close後還可以再進行open,物...

php(黑馬程式設計師)

設定中文編碼 header content type text html charset utf 8 多有語句要加 輸出的關鍵字 echo 你好 變數 資料型別 字串 name 吳京 數字 num 123 換行 echo 小數 pi 3.1415926 bool male false 邏輯語句 if...

黑馬程式設計師 學習筆記 Math

asp.net android ios開發 net培訓 期待與您交流!math類 看到這個單詞就可以想到這是個跟數學有關係的類,這個類包括了一切計算的方法,四捨五入,隨機數,正切,餘切等等。具體方法參考api 這裡就記錄幾個常用的方法 double w math.ceil 12.1 system.o...