PHP學習—了解篇
- 2019 年 10 月 3 日
- 筆記
了解PHP
- 了解神器:PhpStudy 一鍵搭建PHP環境
語法:
PHP是一種可以嵌套在HTML頁面的腳本語言
-
嵌套HTML文件:
<!DOCTYPE html> <html> <head> <title>PHP</title> </head> <body> <?php // php程式碼; ?> </body> </html>PHP同時也可以以 「*.php」 文件單獨保存和被訪問,但是在php文件中,也必須以 「< ? " 開頭, 」?>」結束!php程式碼只會在這裡被執行和解析
- PHP對大小寫敏感識別
-
PHP支援目前主流的三種注釋:雙斜杠,「#」號,多行注釋
變數:
變數規則:
- 變數以$符號開頭
-
變數名必須字母或下劃線開頭,由數字、字母、下劃線組成變數名
-
PHP沒有創建變數名的命令,變數賦值的過程就是創建的過程
作用域:
-
local(局部):只允許自己語法結構的語句訪問(函數內部聲明)
-
global(全局):允許當前PHP程式中所有的語法結構內的語句訪問(函數之外聲明)
全局變數訪問:
global關鍵字用於在函數內訪問全局變數,在內部函數中訪問全局變數必須在訪問前使用global關鍵字。
<?php $x = 5 ; $y = 10 ; function myTest(){ global $x , $y ; $y = $x + $y ; } myTest(); echo $y ; ?> -
static(靜態):變數執行的結果,下一回合不複位
靜態訪問:
在變數聲明時,添加static聲明,就可以在多次訪問該變數而變數的變化不複位
<?php function myTest(){ static $x = 0 ; echo $x ; $x ++ ; } myTest(); myTest(); myTest(); ?>
輸出:
echo輸出:
- 可以輸出一個以上的字元串
<?php echo '<p>Hello,World!</p>'; ?>
print輸出:
數據類型:
字元串:
- 字元串是字元序列,引號內的文本都屬於字元串
整數:
- 沒有小數的數字組合(包括負數)
浮點數:
- 不是整數的所有數字組合,以及科學計數
布爾邏輯數:
- true和false
數組:
-
一個變數中存儲一個或多個值
-
數組創建使用關鍵字「array」
<?php $cars = array ("HUAWEI","China","GO!")s var_dump($cars);//返回數組的類型和值 ?> // 運行結果 // 「array(3) { [0]=> string(6) "HUAWEI" [1]=> string(5) "China" [2]=> string(3) "GO!" }」關鍵字:var_dump 返回數組的大小,每一個參數值的數據類型等資訊
對象:
-
使用 「class」 關鍵字聲明對象數據類型
<?php class Car { var $color ; function Car($color = "green") { $this -> color = $color; } function what_color(){ return $this->color; } } ?>
NULL值:
- 表示變數為空值(將值設置為null,代表清空變數值)
判斷數據類型:
var_dump():
- 列印變數的類型和值
- 語法:void var_dump(mixed $expression)
-
無返回值
iS函數:
- is_bool():判斷是否為布爾值
- is_float():判斷是否為浮點型
- is_int():判斷是否為整型
- is_numeric():判斷是否為數值型
- is_string():判斷是否為字元串
- is_array():判斷是否為數組
- is_object():判斷是否為對象
- is_null():判斷是否為空
- is_resource():判斷是否為資源類型
isset():
- 檢查變數是否存在
- 返回:變數存在返回 true
empty():
- 檢查變數是否為空(isset()只可以檢測是否存在)
- 返回:變數存在且非空 返回false(var = null 才認為是空)
PHP系統常量:
| 系統常量 | 說明 |
|---|---|
| __ FILE __ | PHP程式文件名 |
| __ LINE __ | PHP程式當前行號 |
| PHP_VERSION | PHP程式版本號 |
| PHP_OS | 作業系統名稱 |
| TRUE | 真 |
| FALSE | 假 |
| E_ERROR | 最近的錯誤 |
| E_WARNING | 最近的警告 |
| E_PARSE | 解析語法潛在問題 |
| E_NOTICE | 不正常的錯誤 |
運算符:
算術運算符:
// + – * / % ++ —
加 減 乘 除 模 自加 自減
字元串運算符:
字元串連接符: .(點)
連接等於:. = (點 等於)
賦值運算符:
賦值: =
減等: -=
加等: +=
乘等:*=
除等:/=
取余等:%=
比較運算符:
大於、小於、大於等於、小於等於、等於、不等於
全等於:===
不全等:! ==
邏輯運算符:
邏輯與: and &&
邏輯或: or ||
邏輯非: not !
三元運算符:
條件運算符: ?:
錯誤抑制操作符:
符號: @
在可能會產生錯誤的語句前使用,可以抑制報錯
命令執行操作符:
符號:* (反單引號) 》和 ~ 在同一個鍵位
該操作符可以在OS上直接執行操作命令(echo輸出命令後才可以在系統上執行)
控制結構:
if分支條件:
略
Switch條件語句:
略
While循環:
略
do…while循環:
略
for循環:
略
控制函數:
略(break/continue)
數值的傳遞:*
賦值傳遞:(兩個都不同的記憶體地址)
$a = $b ;
引用賦值:(兩個變數同一個地址)
$a = &$b ;
數組:
數組類型:
- 枚舉數組:索引下標為整數
- 關聯數組:索引下標為字元串
- 多維數組:數組元素是數組
創建數組:
-
關鍵字:array() 創建數組
- 標識符:
- $arr[key] = value ;
- $arr[] = value ;
數組函數:
print_r():列印變數資訊
unset():刪除數組元素
foreach():遍曆數組元素
array_shift():
- 將數組的第一個單元格移出並作為結果返回
array_pop():
- 將數組的最後一個單元元素移出並返回
array_unshift():
- 在數組最前面插入一個或多個元素
array_push():
- 在數組的尾部插入一個或多個元素
array_values():
- 返回數組中所有的值並建立數字索引
count():計算數值屬性個數
array_sum():計算數值的和
array_reverse():返回一個反轉數組
list():將數組元素賦值給變數
<?php $IntArray = array(2,5,9,13,7,9,21,7,9,24,38) ; $MAX = $IntArray[0]; $MIN = $IntArray[0]; $MAX_i = $MIN_i = 0; for ($i=0; $i < count($IntArray) ; $i++) { if ($MAX < $IntArray[$i]) { $MAX = $IntArray[$i] ; $MAX_i = $i ; } if ($MIN > $IntArray[$i]) { $MIN = $IntArray[$i] ; $MIN_i = $i ; } } echo "Array_MAX:".$MAX."<br />MAX_i=".$MAX_i ; echo "<br /><br />"; echo "Array_MIN:".$MIN."<br />MIN_i=".$MIN_i ; echo "<hr />"; // 位置交換 echo "位置交換前:".print_r($IntArray) ; $M = $IntArray[$MIN_i] ; $IntArray[$MIN_i] = $IntArray[$MAX_i] ; $IntArray[$MAX_i] = $M ; echo "<br />"; echo "位置交換後:".print_r($IntArray) ; echo "<hr />"; // 反轉數組 echo print_r(array_reverse($IntArray)); ?>
超全局變數:
| 元素/程式碼 | 描述 |
|---|---|
| $_SERVER[‘PHP_SELF’] | 返回當前執行腳本的文件名。 |
| $_SERVER[‘GATEWAY_INTERFACE’] | 返回伺服器使用的 CGI 規範的版本。 |
| $_SERVER[‘SERVER_ADDR’] | 返回當前運行腳本所在的伺服器的 IP 地址。 |
| $_SERVER[‘SERVER_NAME’] | 返回當前運行腳本所在的伺服器的主機名(比如 www.w3school.com.cn)。 |
| $_SERVER[‘SERVER_SOFTWARE’] | 返回伺服器標識字元串(比如 Apache/2.2.24)。 |
| $_SERVER[‘SERVER_PROTOCOL’] | 返回請求頁面時通訊協議的名稱和版本(例如,「HTTP/1.0」)。 |
| $_SERVER[‘REQUEST_METHOD’] | 返回訪問頁面使用的請求方法(例如 POST)。 |
| $_SERVER[‘REQUEST_TIME’] | 返回請求開始時的時間戳(例如 1577687494)。 |
| $_SERVER[‘QUERY_STRING’] | 返回查詢字元串,如果是通過查詢字元串訪問此頁面。 |
| $_SERVER[‘HTTP_ACCEPT’] | 返回來自當前請求的請求頭。 |
| $_SERVER[‘HTTP_ACCEPT_CHARSET’] | 返回來自當前請求的 Accept_Charset 頭( 例如 utf-8,ISO-8859-1) |
| $_SERVER[‘HTTP_HOST’] | 返回來自當前請求的 Host 頭。 |
| $_SERVER[‘HTTP_REFERER’] | 返回當前頁面的完整 URL(不可靠,因為不是所有用戶代理都支援)。 |
| $_SERVER[‘HTTPS’] | 是否通過安全 HTTP 協議查詢腳本。 |
| $_SERVER[‘REMOTE_ADDR’] | 返回瀏覽當前頁面的用戶的 IP 地址。 |
| $_SERVER[‘REMOTE_HOST’] | 返回瀏覽當前頁面的用戶的主機名。 |
| $_SERVER[‘REMOTE_PORT’] | 返回用戶機器上連接到 Web 伺服器所使用的埠號。 |
| $_SERVER[‘SCRIPT_FILENAME’] | 返回當前執行腳本的絕對路徑。 |
| $_SERVER[‘SERVER_ADMIN’] | 該值指明了 Apache 伺服器配置文件中的 SERVER_ADMIN 參數。 |
| $_SERVER[‘SERVER_PORT’] | Web 伺服器使用的埠。默認值為 「80」。 |
| $_SERVER[‘SERVER_SIGNATURE’] | 返回伺服器版本和虛擬主機名。 |
| $_SERVER[‘PATH_TRANSLATED’] | 當前腳本所在文件系統(非文檔根目錄)的基本路徑。 |
| $_SERVER[‘SCRIPT_NAME’] | 返回當前腳本的路徑。 |
| $_SERVER[‘SCRIPT_URI’] | 返回當前頁面的 URI。 |
函數:
- 關鍵字:function name() { …… }
函數參數:
-
值傳遞參數:
在函數調用的時候,允許傳遞參數值給函數,函數可以自由使用參數進行操作
-
引用傳遞參數:
如果希望函數可以修改參數值,可以使用引用參數進行傳遞
引用傳遞,只需要在參數前加上 「&」 符號就可以
$arr = array(1,2,3,4); function addElement(&$arr){ $arr[count($arr)] = 100; print_r($arr); //在函數內輸出$arr } addElement($arr); print_r($arr); //在函數外輸出 -
默認值傳遞:
function hobby($who,$style=『運動』){ echo 「$who 喜歡 $style」; } hobby(「張三」,「唱歌」); hobby(「張三」); -
global關鍵字:
引用函數外部的參數(引用傳遞性質的參數)
$name = "Mary";//初始化變數 function getName(){ global $name; //引入外部的變數 echo "我的名字叫:$name"; } getName();
內置函數:
- echo語句:輸出
- print語句:輸出
-
include語句:包含並運行指定文件
-
require語句:包含並運行指定文件
