知識點:
標記符,注釋
變量
常量
數據類型
運算符
流程控制
1. 默認形式: ?php php語句 ?
如果 ?php ...? 之后沒有html代碼,則 ? 標記可以省略
2. 短標簽形式: ? php語句 ?
默認是關閉的,需要開啟配置項【php.ini】: short_open_tag=on
3. script標簽形式: script language=”php” php語句 /script
4. asp形式: % php語句 %
默認是關閉的,需要開啟配置項【php.ini】:asp_tags =on
大小寫變量: 區分大小寫
常量: 區分大小寫, 可以在php.ini文件中配置為不區分大小寫
其他不區分大小寫: 如函數名,系統關鍵字...
注釋單行注釋: //注釋內容 或 #注釋內容
多行注釋: /*注釋內容*/
變量 概念:代表一定存儲空間及其中數據的一個“標識符”
賦值同時定義變量, $v1 = 1; 圖示:
以字母或下劃線開頭 后跟任意數量(含0個)字母,數字和下劃線
常見命名:
駱駝命名法: 首單詞小寫,其后面每個單詞首字母大寫 。 如: $myName
帕斯卡命名法:每個單詞首字母大寫 。 如: $MyName
下劃線分割法:每個單詞小寫,并且之間用下劃線分開 。 如:$my_name
取值 如 $v = 12.3; $m=round($v)
賦值 如 $v = 12.3;
判斷 isset() 判斷該變量是否存在,或該變量是否有數據值!
刪除unset():斷開該變量名跟該變量原有的數據值之間的“引用關系”
傳值形式值傳遞: 值相等,相互獨立。 如 $v1 = 1; $v2 = $v1; 圖示:
既是將變量$v1的值進行了復制,然后再給另一變量v2賦值
引用傳遞: 實質就是2個變量指向同一個數據空間。 如 $m1 = 1; $m2 = m1; 圖示:
既將變量$m1跟其數據值之間的“引用關系”,復制一份,再給予變量$m2
可變變量連續出現“$”的變量形式。 如: $v = a $a=10; 則 $$v = 10.
1 ?php 2 //可變變量 3 $v1 = 123; 4 $v2 = 221; 5 $v3 = 3; 6 $v4 = 9; 7 $v5 = 100; 8 $v6 = 200; 10 //求變量的和 11 $sum = 0; //用于存儲和 12 for($i = 1; $i $i++) { 13 $v = v .$i; 14 $sum += $$v;16 echo $sum;17 ?
點擊查看-可變變量使用
預定義變量超全局數組,有超全局作用域,系統定義與維護 。主要有$_POST, $_GET,$_REQUEST,$_SERVER,$GLOBALS, $_COOKIE,$_SESSION ....
$_POST 通過表單以post方式(method=”post”)提交的時候所提交的所有數據 接收數據如: $name = $_POST[ name
表單提交數據注意: 對于radio和checkbox數據不填則接收不到,其他不填也會接收到
$_GET 通過get方式提交時所提交的所有數據 接收數據如: $name = $_GET[ name
有5種方式實現get提交數據
形式1: form表單get提交
如 form method= get action= index.php ...... /form
形式2: a標簽提交
如 a href=”index.php?name=young gender=male age=18” 主頁 /a
形式3: js跳轉提交1
如: script location.href=” index.php?name=young gender=male age=18”; /script
形式4:js跳轉提交
如: script location.assign=” index.php?name=young gender=male age=18”; /script
形式5: php跳轉提交
如:header(“location: index.php?name=young gender=male age=18”);
$_REQUEST 是$_GET變量和$_POST變量數據的“合集”:即,它里面同時存儲了這兩種數據 . 接收數據如: $name = $_REQUEST[ name
提交表單可以同時具有get和post數據。
如 form method= post action= index.php?name=young gender=male ..... /form
接收數據時, 如果post與get數據項名稱相同,如$_POST[ name ]= young , $_GET[ name ]= admin 。
如果使用$_REQUEST方式接收,則post數據覆蓋get數據。
可以通過配置項【php.ini】進行設置: request_order= GP G代表GET P代表POST 后者覆蓋前者
$_SERVER 代表一次瀏覽網頁的過程中的瀏覽器端的一些信息或服務器端的一些信息
常用選項:
$_SERVER[ REMOTE_ADDR ] 訪問者IP地址
$_SERVER[ SERVER_ADDR ] 服務器IP地址
$_SERVER[ SERVER_NAME ] 服務器名字 既站點配置中設置的ServerName 如: www.test.com
$_SERVER[ DOCUMENT_ROOT ] 站點物理地址。 既站點配置中設置的 DocumentRoot 如: d:/www
$_SERVER[ PHP_SELF ] 當前網頁地址,不包含域名 如 /index.php
$_SERVER[ SCRIPT_FILENAME ] 當前網頁的物理路徑 如 d:/demo/index.php
$_SERVER[ QUERY_STRING ] 獲取當前網頁地址中的所有get數據(既 ?號后面部分),但只是一個整體的字符串而已 如:id=2 name=young
$GLOBALS :存儲所有全局變量。 可以用于在局部范圍不可以使用全局變量的時候,可以用它來取得指定全局變量的值
isset() 與 empty()isset(變量): 判斷變量是否存在,或變量是否為空(null),如果存在,返回true,否則返回false
empty(變量): 判斷變量的“內容”是否為空的,內容是空的返回true,否則返回false
為空情形: 0 0.0 “” “0” false null array()空數組
常量 概念含義: 是其中存儲的數據不會也不應該改變的“標識符”
定義方式1: define( 常量名 ,值); 如: define( PI ,3.14);
方式2: const 常量名=值; 如: const HOST= localhost
注意: const語法只能用在“頂層代碼”位置,而不能用在大括號的位置
取值形式1: 直接使用常量名 如: echo PI;
形式2: 使用函數constant( 常量名 ) 如 echo constant( PI
與變量的區別 定義形式不同
使用形式不同:常量無需$符號
可變程度不同,常量的值不可以改變,常量也不可以銷毀
作用范圍不同:常量具有超全局作用域(函數內外都可以直接使用)
可用類型不同:常量只能存儲標量類型(整數,浮點數,字符串,布爾值)
defined(“常量名”) 存在返回true 不存在返回false
使用未定義常量,會有Notice警告,系統會將該 未定義常量名稱 作為 其值 使用
預定義常量常見: 【可參考PHP手冊附錄》保留字列表》預定義常量】
M_PI: 就是圓周率的常量值
PHP_OS: 就是PHP運行所在的操作系統
PHP_VERSION: 就是PHP的版本號
PHP_INT_MAX: php中的最大的整數值
__FILE__ 代表當前網頁文件的網頁物理路徑
__DIR__ 代表當前網頁文件所在的目錄
__LINE__ 代表這個常量名當前所在的行號
基本數據類型(標量類型)
整型類型: int interger
浮點類型: float double 如: $v1 = 123.456E2; //含義為: 123.456乘以10的2次方
不要用浮點數進行大小比較, 如果要比較的浮點數,轉換為整數之后再比較。如 要求精度為3位小數,則都乘以1000,然后取整后比較
當整數運算的結果超出整數的范圍后,會自動轉換為浮點數
字符串類型: string
布爾類型: bool Boolean
復合類型:
數組:array
對象:object
特殊類型:
空類型 null 這種類型中,只有一個數據,那就是null
資源類型 resource
整數類型
0b1010(二進制), 0123(八進制), 123(十進制), 0x123(十六進制)
Bin: 二進制 oct: 八進制 dec: 十進制 hex: 16進制
手工進制轉換
10進制轉換為2進制: 除2取余倒著寫出所有余數
將一個10進制數字除以2,得到商和余數,如果商還大于等于2,則繼續除以2,繼續得到商和余數,依次類推,
直到商為0為止,然后將前面的所有余數按倒序寫出來對應的2進制數字
10進制轉換為8進制: 除8取余倒著寫出所有余數
10進制轉換為16進制:除16取余倒著寫出所有余數
8進制轉換為10進制:將8進制數字的每個位上的數乘以其對應位上的權值,然后相加之后的結果
16進制轉換為10進制:將16進制數字的每個位上的數乘以其對應位上的權值,然后相加之后的結果
2進制轉換為10進制:將2進制數字的每個位上的數乘以其對應位上的權值,然后相加之后的結果
小數二進制的做法: 乘2并順序取整數部分
十進制轉換為其他進制
decbin(一個10進制數字):結果返回的是該數字的2進制數字形式的字符串
decoct(一個10進制數字):結果返回的是該數字的8進制數字形式的字符串
dechex(一個10進制數字):結果返回的是該數字的16進制數字形式的字符串
其他進制轉換為十進制
bindec (一個2進制數字字符串):結果返回的是該2進制數字字符串對應的10進制數字形式的數字
octdec (一個8進制數字字符串):結果返回的是該8進制數字字符串對應的10進制數字形式的數字
hexdec (一個16進制數字字符串):結果返回的是該16進制數字字符串對應的10進制數字形式的數字
getType($變量): 返回的是該類型的名字 (字符串)
var_dump($變量): 會輸出該變量的類型,數據內容,(以及長度)
形式1:單引號 $str=‘hello’; 可以識別的轉義符有: // /
形式2:雙引號 $str = hello ; 可以識別的轉義符有: // / /n(換行符) /r(回車符) /t(tab符)
形式3:雙引號定界符heredoc: 可以識別的轉義符有: // /n /r /t /$
1 $str= LAB 2 this is a “test”!,這是一個 測試 !v1=$v1;3 LAB;4 //注:結束行只能是標識符及分號
形式4:單引號定界符nowdoc:
1 $str = LAB 2 this is a test!3 LAB;數據類型轉換
在任何運算中,如果需要某種類型的數據,而給出的數據不是該類型,通常都會發生自動轉換
自動轉換: 由“運算符”或類似運算符語句決定
算術運算,只對數值進行計算
字符串中數字的轉換規則:只識別字符串的前面數字部分 如 1+ “3a5b” =4
強制轉換:
形式: (目標類型)數據 如 (int)$a;
目標類型通常有:int,float,string,bool,array,object
轉換不改變變量本身,要改變變量本身,使用setType($var,$value);
常見的類型相關的系統函數 var_dump() 打印變量的完整信息
getType($var) 獲取變量的類型的名字(字符串)
setType($var,$type) 強制轉換變量的類型
isset() 變量是否設置
empty() 變量的值是否為空
unset() 刪除變量
is_xx系列函數: 判斷是否為某種類型
is_int($x) 判斷是否是一個整數類型
is_float() 判斷是否是一個浮點類型
is_string() 判斷是否是一個字符串類型
is_bool() 判斷是否是一個布爾類型
is_array() 判斷是否是一個數組
is_object() 判斷是否是一個對象
is_null() 判斷是否是為null
is_numeric() 是否是一個數字
is_scalar() 是否是一個標量類型(int,float,bool,string)
符號: + - * / % ++ --
用于對數字進行運算,如果符號兩邊是非數字,會自動轉換為數字再進行運算。
求余(%)運算,先取整在求余。 如 11.3%3 相當于 11%3。
++, -- 只能對于數字或字母。字符串也可以進行自增減。
如: $val = abc $val++; echo $val; //$val = abd
$va = abc9 $va++; echo $va; //$va= abd0
“前自增” 先對變量自加再做其他運算,“后自增”先做其他運算再對自加變量加1; 自減類似。
比較運算符符號: = = == != === !==
不要對浮點數進行大小比較。
標量之間比較規則:
比較的數據中,有布爾值,則自動轉為布爾值載進行比較。
否則, 如果比較的數據中,有數字值,則自動轉為數字進行比較。
否則,如果比較的數據都是“數字字符串”,則自動轉為數字再進行比較
否則,按照字符串進行比較
邏輯運算符符號: || !
邏輯運算注意短路現象。如果有多想判斷,將簡單的放在前面。
字符串運算符符號: . .=
字符串連接, 如果兩邊不是字符串,會自動轉換為字符串進行連接
賦值運算符= += -= *= /= %=
條件運算符(三目)形式: 數據值1 ? 結果值1 : 結果值2;
if等價形式: if(數據值1){ 結果值1;} else {結果值2; }
如果省略“結果值1”則為其本身。 如 $res=100?:10; //結果 $res=100;
位運算符號符號: | ~ ^
僅僅針對于整數類型進行運算
按位異或: 相同為0 不同為1. 如1^1 = 0;
安慰左移運算 : 右邊補0,左邊移出
原碼,反碼,補碼:
正數反碼:等于其本身; 負數的反碼:符號位不變,其它位取反;
正數的補碼等于其本身; 負數的補碼:符號位不變,其它位取反再加1。
數組運算符符號: + == != === !==
對于數組 + 號 : 數組聯合, 將右邊的數組項合并到左邊的數組的后面,得到一個新的數組。如果有重復的鍵,不覆蓋,保留左邊數組的數據。
如: $arr = array(1= 11,2= 22,3= $narr = array(3= 23,4= $resArr = $arr +$narr; //結果:array(1= 11,2= 22,3= 33,4= 24)
== : 鍵名和值相等則為真,順序可以不同。
錯誤抑制運算符符號: @
可以抑制可能產生的報錯信息。如 $conn =@ mysql_connect(....);
運算符優先級參考手冊: 語言參考》運算符》運算符優先級
流程控制 繪制流程圖開始,結束: 用橢圓 表示
語句塊: 長方形圖形
判斷:帶指進和指出的四邊形
輸入輸出: 四邊形
if分支結構
1 if(條件1){2 分支1; 3 } else if(條件2){4 分支2;5 } ….. else{6 //else 分支 7 }
分支結構
switch分支結構
1 switch(表達式) {2 case 值1: 分支1; 3 [break; ] //可以省略4 case 值2: 分支2; 5 [break; ] 6 …….7 Default : default 分支;9
switch結構
循環結構1)for循環
for(【循環變量初始化】; 【循環變量的條件判斷】; 【循環變量的改變】) { // 循環體語句…….}
2) while()循環
While(【循環變量的條件判斷】){ //循環體語句……. 【循環變量的改變】 }
3) do..while()循環
do { //循環體語句……. 【循環變量的改變】 }while(【循環變量的條件判斷】)
4) foreach()循環
5) goto語句
不能跳入循環中,不能跳入函數中,不能跳出函數外,不能跳出文件外
標識符2: 語句1。。。。。goto 標識符1; //含義: 立即跳轉到標識符1所在的位置 語句。。。標識符1: 語句。。。。goto 標識符2; //含義: 立即跳轉到標識符2所在的位置循環中斷
1)break: 完全終止某個循環,讓執行流程進入到循環語句后面的語句;
2)continue: 停止當前正在進行的當次循環,而進入到循環的“下一次”過程中去;
3)中斷“更多層”的循環; 指的是從當前中斷語句(break 或continue)算起,往代碼的“外部”數循環的個數,就是層數
break 正整數n; 如: break 1;
continue 正整數n; 如: continue 2;
for(…) { //循環1 for(..) { //循環2 for(..) { //循環3 break 2; //此時會中斷循環2; 其實只中斷“2層” //對此break語句,循環3是其“第1層”,循環2是其“第2層”,循環1是其“第3層” } continue 2; //此時會中斷循環1; 其實只中斷“2層” //對此continue語句,循環2是其“第1層”,循環1是其“第2層” }}流程控制另外一種寫法
1 if(…): …… endif;2 if(…): …… else: …… endif;3 if(…): ……elseif(…): ……elseif(…): ……else: …… endif;4 switch(…):case …… case …… endSwitch;5 while(…): …… endwhile;6 for(…; … ; …): …… endfor;
1) die( 字符串 ); 輸出該字符串后,立即停止PHP的執行!
2) exit( 字符串 ); 輸出該字符串后,立即停止PHP的執行!
3) sleep($num); 讓程序停止運行指定的秒數。等待過了$num秒后,繼續執行。
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !
相關推薦:
PHP的環境搭建 的方法
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答