「學習筆記」PHP 基礎
和 C 與 C++一比,PHP 好方便啊。
基礎格式
<?php // 開始
# 相關的代碼
?> // 結束
/*注釋
*/
PHP 代碼以 <?php 開始,以 ?> 結束。
變量、作用域
變量
PHP 是一門弱類型語言,因此定義變量我們不用聲明數據類型,變量以 $ 符號開始,后面是變量的名稱,調用變量,變量名前必須有 $。

作用域
PHP 有四種不同的變量作用域:
- local
- global
- static
- parameter
局部作用域 local 與全局作用域 global
在所有函數外定義的變量,擁有全局作用域,除了函數內,全局作用域可以被腳本中的任何部分訪問,但要在一個函數內訪問一個全局變量,必須加上 global 關鍵字。PHP 函數內定義的變量擁有局部作用域 local,只能在函數內調用。
static 作用域
一個函數完成時,他的所有變量都會被刪除,有時你不希望某個變量的數據被刪除,那你在第一次定義變量時使用關鍵字 static,這樣,每次調用函數,該變量都會保留上一次調用函數時的值。
數據類型
- String(字符串)
- Integer(整型)
- Float(浮點型)
- Boolean(布爾型)
- Array(數組)
- Object(對象)
- NULL(空值)
- Resource(資源類型)
賦值、運算
| 運算符 | 等同于 |
|---|---|
x = y |
x = y |
x += y |
x = x + y |
x -= y |
x = x - y |
x *= y |
x = x * y |
x /= y |
x = x / y |
x %= y |
x = x % y |
x .= y |
x = x . y |
x .= y試講兩個字符串連接起來,要注意先后順序。
++ x,-- x,x ++,x -- 與 C 語言一樣。
| 比較運算符 | 名稱 |
|---|---|
x <> y |
不等于 |
x !== y |
不絕對等于 |
二者的區別在于
x <> y是指比較值,二x !== y,還要比較類型,是嚴格不等。
echo/print
echo 可以輸出一個或多個字符串(要加雙引號)。
print 只能輸出一個字符串,返回值總為 \(1\),輸出速度比 echo 慢。
類型比較
==: 寬松比較,只比較值,不比較類型。
===: 嚴格比較,既比較值,又比較類型。
常量
常量用 define() 函數或 const 關鍵字來定義,擁有不變性和全局作用域,常量名不需要加 $。
數組
用 array() 函數創建數組或 [] 定義數組。
這里有數值數組、關聯數組、和多維數組。
關聯數組相當于 C++ 中的 map,即鍵值由自己分配。
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或者
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
魔術常量
PHP 向它運行的任何腳本提供了大量的預定義常量。
不過很多常量都是由不同的擴展庫定義的,只有在加載了這些擴展庫時才會出現,或者動態加載后,或者在編譯時已經包括進去了。
-
__LINE__
返回文件中當前行號。 -
__FILE__
返回文件的完整路徑和文件名,如果用在被包含文件中,則返回被包含的文件名。 -
__DIR__
返回文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。
表單數據
表單數據是通過 HTML 表單收集的用戶輸入數據。
$_GET: 接受 GET 請求傳遞的參數。
$_POST: 接受 POST 請求傳遞的參數。
$_REQUEST: 接受 GET、POST 以及 Cookie 請求傳遞的參數。
內建函數
文件操作函數
-
include(): 導入并執行指定的 PHP 文件。
例如:include('config.php'); 會導入并執行 config.php 文件中的代碼。 -
require(): 類似于include(),但如果文件不存在,則會產生致命錯誤。 -
include_once(), require_once(): 與include和require類似,但只導入文件一次。 -
fopen(): 打開一個文件或 URL。
例如:$file = fopen("test.txt", "r");會以只讀模式打開 test.txt。 -
file_get_contents(): 讀取文件的全部內容到一個字符串。
例如:$content = file_get_contents("test.txt"); -
file_put_contents(): 將一個字符串寫入文件。
例如:file_put_contents("test.txt", "Hello World!");
代碼執行函數
-
eval(): 執行字符串中的 PHP 代碼。
例如:eval('$x = 5;'); 會設置變量$x的值為 \(5\)。 -
assert(): 用于調試,檢查一個條件是否為 true。 -
system(), shell_exec(), exec(), passthru(): 執行外部程序或系統命令。
例如:system("ls"); 會執行ls命令并顯示輸出。
反序列化函數:
unserialize(): 將一個已序列化的字符串轉換回 PHP 的值。
例如:$array = unserialize($serializedStr);可以將一個序列化的數組字符串轉換為數組。
數據庫操作函數:
mysql_query(), mysqli_query(): 發送一個 MySQL 查詢。- 例如:
$result = mysql_query("SELECT * FROM users");
其他函數:
-
preg_replace(): 執行正則表達式搜索和替換。
例如:$newStr = preg_replace("/apple/i", "orange", $str);會將$str中的"apple"替換為"orange"。 -
create_function(): 創建匿名的 lambda 函數。
例如:$func = create_function('$x', 'return $x + 1;');

浙公網安備 33010602011771號