PHP變數規則 變數以$符號開頭,其後是變數的名稱; 變數名稱必須已字母或者下劃線開頭; 變數名稱不能以數字開頭; 變數名稱只能包含字母數字字元和下劃線(A-z、0-9以及 _ ); 變數名稱對大小寫敏感($y和$Y是兩個不同的變數) 註釋:PHP變數名稱對大小寫敏感 創建PHP變數 PHP變數沒有 ...
PHP變數規則
- 變數以$符號開頭,其後是變數的名稱;
- 變數名稱必須已字母或者下劃線開頭;
- 變數名稱不能以數字開頭;
- 變數名稱只能包含字母數字字元和下劃線(A-z、0-9以及 _ );
- 變數名稱對大小寫敏感($y和$Y是兩個不同的變數)
註釋:PHP變數名稱對大小寫敏感
創建PHP變數
PHP變數沒有創建變數的命令。變數會在首次為其賦值時被創建。
PHP是一門類型鬆散的語言
註意我們不必告知PHP變數的數據類型。
PHP根據它的值,自動把變數轉換為正確的數據類型。
在諸如C和C++以及Java之類的語言中,程式員必須在使用變數之前聲明他的名稱和類型。
PHP變數作用域
- local(局部)
- global(全局)
- static(靜態)
PHP global關鍵詞
global關鍵詞用於在函數內訪問全局變數,即可以在函數內部變數前面使用global關鍵詞。
PHP同時在名為$GLOBALS[index]的數組中存儲了所有的全局變數。下標存有變數名。這個數組在函數內也可以訪問,並能夠用於直接更新全局變數。如:
PHP static關鍵詞
通常在函數完成/執行後,會刪除所有的變數。不過,有時我需要不刪除某個局部變數,可以在函數內首次聲明變數時使用static關鍵詞。
PHP echo和print語句
- echo 能夠輸出一個以上的字元串;
- print 只能輸出一個字元串,並始終返回1。
PHP數據類型
var_dump() 返回變數的數據類型和值。
PHP數組的數據類型:
PHP字元串函數
strlen():返回字元串的長度。
str_word_count() : 對字元串中的 單詞進行計數。
strrev() : 反轉字元串。
strpos() :用於檢索字元串內指定的字元或者文本,如果找到匹配,則會返迴首個匹配的字元位置。如果未找到匹配,則將返回 FALSE。
str_replace() 函數用一些字元串替換字元串中的另一些字元。
PHP常量
常量名稱前面沒有$符號,與變數不同,常量貫穿整個腳本是自動全局的。
如需設置常量,請使用 define()
函數 - 它使用三個參數:
- 首個參數定義常量的名稱
- 第二個參數定義常量的值
- 可選的第三個參數規定常量名是否對大小寫不敏感。預設是 false。
PHP字元串運算符
PHP比較運算符
PHP比較運算符用於比較兩個值(數字或者字元串):
PHP數組運算符
PHP foreach迴圈
foreach迴圈只適用於數組,並用於便利數組中的每一個鍵/值對。
每進行一次迴圈迭代,當前數組元素的值就會被賦值給 $value 變數,並且數組指針會逐一地移動,直到到達最後一個數組元素。
PHP函數
函數名對大小寫不敏感。
PHP數組
在 PHP 中,有三種數組類型:
-
索引數組 - 帶有數字索引的數組
-
關聯數組 - 帶有指定鍵的數組
- 多維數組 - 包含一個或多個數組的數組
count()函數用於返回數組的長度。
PHP中數組的排序函數
- sort() - 以升序對數組排序
- rsort() - 以降序對數組排序
- asort() - 根據值,以升序對關聯數組進行排序
- ksort() - 根據鍵,以升序對關聯數組進行排序
- arsort() - 根據值,以降序對關聯數組進行排序
- krsort() - 根據鍵,以降序對關聯數組進行排序
PHP全局變數——超全局變數
超全局變數在PHP4.1.0中引入,是在全部作用域中始終可用的內置變數。在函數或方法中無需執行 global $variable; 就可以訪問它們。https://www.w3school.com.cn/php/php_superglobals.asp
- $GLOBALS
$GLOBALS 這種全局變數用於在 PHP 腳本中的任意位置訪問全局變數(從函數或方法中均可)。
PHP 在名為 $GLOBALS[index] 的數組中存儲了所有全局變數。變數的名字就是數組的鍵。
-
$_SERVER 保存關於報頭、路徑和腳本位置的信息。
-
$_REQUEST 用於收集 HTML 表單提交的數據。
-
$_POST 廣泛用於收集提交 method="post" 的 HTML 表單後的表單數據。$_POST 也常用於傳遞變數。
-
$_GET 可用於收集提交 HTML 表單 (method="get") 之後的表單數據; 也可以收集 URL 中的發送的數據。
-
$_FILES
-
$_ENV
-
$_COOKIE
-
$_SESSION
PHP 超全局變數 $_GET 和 $_POST 用於收集表單數據(form-data)。
GET vs. POST
GET 和 POST 都創建數組(例如,array( key => value, key2 => value2, key3 => value3, ...))。此數組包含鍵/值對,其中的鍵是表單控制項的名稱,而值是來自用戶的輸入數據。
GET 和 POST 被視作 $_GET 和 $_POST。它們是超全局變數,這意味著對它們的訪問無需考慮作用域 - 無需任何特殊代碼,您能夠從任何函數、類或文件訪問它們。
$_GET 是通過 URL 參數傳遞到當前腳本的變數數組。
$_POST 是通過 HTTP POST 傳遞到當前腳本的變數數組。
何時使用 GET?
通過 GET 方法從表單發送的信息對任何人都是可見的(所有變數名和值都顯示在 URL 中)。GET 對所發送信息的數量也有限制。限制在大約 2000 個字元。不過,由於變數顯示在 URL 中,把頁面添加到書簽中也更為方便。
GET 可用於發送非敏感的數據。
何時使用 POST?
通過 POST 方法從表單發送的信息對其他人是不可見的(所有名稱/值會被嵌入 HTTP 請求的主體中),並且對所發送信息的數量也無限制。
此外 POST 支持高階功能,比如在向伺服器上傳文件時進行 multi-part 二進位輸入。
不過,由於變數未顯示在 URL 中,也就無法將頁面添加到書簽。
什麼是 $_SERVER["PHP_SELF"] 變數?
$_SERVER["PHP_SELF"] 是一種超全局變數,它返回當前執行腳本的文件名。該變數能夠被黑客利用進行XSS攻擊。
因此,$_SERVER["PHP_SELF"] 將表單數據發送到頁面本身,而不是跳轉到另一張頁面。這樣,用戶就能夠在表單頁面獲得錯誤提示信息。
什麼是 htmlspecialchars() 函數?
htmlspecialchars() 函數把特殊字元轉換為 HTML 實體。這意味著 < 和 > 之類的 HTML 字元會被替換為 < 和 > 。這樣可防止攻擊者通過在表單中註入 HTML 或 JavaScript 代碼(跨站點腳本攻擊)對代碼進行利用。
在用戶提交該表單時,我們還要做兩件事:
- (通過 PHP trim() 函數)去除用戶輸入數據中不必要的字元(多餘的空格、製表符、換行)
- (通過 PHP stripslashes() 函數)刪除用戶輸入數據中的反斜杠(\)
我們可以創建一個test_input() 函數,用於檢查每個 $_POST 變數
preg_match() 函數
檢索字元串的模式,如果模式存在則返回 true,否則返回 false。例如檢查輸入的欄位是否包含字母和空格。
以下的代碼用於驗證URL:
PHP ——如何在用戶提交表單後保留輸入欄位中的值
(PHP基礎教程和PHP表單部分到此結束!!!)
多看多學!!!