PHP
PHP 的變數範圍
- 區域變數(Local Variables):對於函數內指定的變數,變數只能在函數內使用,函數外的程式碼並無法存取此變數。請注意函數參數也是一種區域變數
- 全域變數(Global Variables):如果變數是在函數外宣告,整個 PHP 程式的各函數和其他程式碼都可以使用此變數。全域變數如果在函數中使用,使用前需要先宣告成 global
- 靜態變數(Static Variables):這也是一種區域變數,在執行函數後,變數值並不會遺失。
require() 可以在 PHP 程式插入其他檔案的 PHP 程式碼,也就是將 require() 程式碼位置取代成引入檔的內容。 require 'filename'; 檔案一定要存在
PHP 的 include() 和 require() 的功能和使用方式都很相似,只是 include() 的引入檔如果不存在,只會顯示警告訊息,PHP 程式一樣可以繼續執行。
include_once() 表示如果之前已經匯入過的檔案,就不會再匯入
時間刻記是從 1970/ 01/ 01 到指定日期/時間的秒數。mktime() 函數是傳回目前時間或指定日期/時間的時間刻記。關於如何使用 Date() 與 mktime() 這裡有文章可以參考:PHP Date 函數使用與各項參數所代表的意義 、 PHP mktime 函數
常用時間如下:
- H – 表示時 (00 to 23)
- h – 表示時 (01 to 12)
- i – 表示分 (00 to 59)
- s – 表示秒 (00 to 59)
- a - 表示中午之前或之後 (am or pm)
! 大小寫有關係 !(例如:若 H 打成 h 會沒有作用)
PHP 的 strtotime() 函數可以剖析口語化的日期/時間描述來取得時間刻記,基本語法如下所示:int strtotime(string time [, int timestamp])
上述函數傳回字串,第1個參數是描述字串,第2個參數是選項,就是需要轉換的時間刻記,如果沒有此參數,就是現在的時間刻記。可以搭配這篇文章閱讀:PHP strtotime 函數 。
PHP 的 gettype() 函數可以取得參數變數的 PHP 資料型態;settype() 函數可以指定變數的資料型態,就是將變數轉換成其他資料型態。
PHP 的 isset() 函數檢查變數是否有設定;PHP 的 empty() 函數檢查變數是否為空值(empty)。這兩個函式比較容易弄混,推薦閱讀:php empty()和isset()的區別 ,以下是我標記的文中重點。
- 如果變量為 0,則 empty() 會返回 true,isset() 會返回 true
- 如果變量為空字元串,則 empty() 會返回 true,isset()會返回 true
- 如果變量未定義,則 empty() 會返回 ture,isset()會返回 false
錯誤處理(Error Handling)是一種處理錯誤的機制,可以處理直譯過程的語法和語意錯誤,或執行時的環境錯誤和程式中的邏輯錯誤。php 錯誤處理:
- 語法錯誤
- 執行時錯誤
- 邏輯錯誤
exit() 與 die() 的錯誤處理:PHP 程式最簡單的錯誤處理就是使用 exit() 或 die() 終止程式執行和顯示一段錯誤訊息。exit() 與 die() 並不是真正的函數,它是 PHP 語言的建構子,例如:使用 PHP 的 fopen() 函數開啟檔案,如下所示:
@ - 代表如果發生錯誤,會 exit 並印出自定義之錯誤訊息
PHP 提供 error_reporting() 函數來指定 PHP 程式需要回報的錯誤等級。換句話說,我們可以只回報所需的錯誤,而隱藏其他並不需要的錯誤,如下所示:
- error_reporting(0) // 關掉回報
- error_reporting(E_ALL); // 回報所有的錯誤
- error_reporting(E_ERROR | E_WARNING | E_NOTICE); // 指定這三種錯誤等級都需要回報
在 PHP 程式可以使用 set_error_handler() 函數指定一個函數作為錯誤處理函數,如下所示:
產生使用者的自訂錯誤 -
- 在 PHP 錯誤等級中,E_USER_ERROR、E_USER_WARNING 和 E_USER_NOTICE 錯誤等級可以建立使用者的自訂錯誤。
- 在 PHP 程式是呼叫 trigger_error() 函數產生使用者自訂錯誤:trigger_error("密碼是空字串!", E_USER_ERROR)。
PHP print_r 用來印出陣列(PHP Array)的內容,可以使用讀者可閱讀方式顯示陣列內容
陣列相加?
PHP 可以直接將陣列變數指定成其他陣列變數:$c = $b + $a; 將陣列運算式指定給陣列變數 $c,「+」符號是PHP 陣列運算子,可以執行兩個陣列變數的聯集運算。
陣列 + -> 聯集運算,取得第1個運算元的所有元素,再加第2個運算元陣列索引不存在第1個陣列的元素 !不是說值!是說索引!
- func_num_args() - 取得傳入的函數參數個數
- func_get_args() - 取得傳入的函數參數的陣列
- func_get_arg(index) - 取得參數index的第幾個參數值,從0開始