PHP學習—瞭解篇
瞭解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 !
三元運算子:
條件運算子: ?:
控制結構:
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語句:包含並執行指定檔案