Web應(yīng)用系統(tǒng)安全開發(fā)課件:PHP的語言基礎(chǔ)_第1頁
Web應(yīng)用系統(tǒng)安全開發(fā)課件:PHP的語言基礎(chǔ)_第2頁
Web應(yīng)用系統(tǒng)安全開發(fā)課件:PHP的語言基礎(chǔ)_第3頁
Web應(yīng)用系統(tǒng)安全開發(fā)課件:PHP的語言基礎(chǔ)_第4頁
Web應(yīng)用系統(tǒng)安全開發(fā)課件:PHP的語言基礎(chǔ)_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Web應(yīng)用系統(tǒng)安全開發(fā)

P

H

P

的語言基礎(chǔ)PHP基本語法1.

概述?PHP是一種創(chuàng)建動(dòng)態(tài)交互性站點(diǎn)的強(qiáng)有力的服務(wù)器端腳本語言,它由服務(wù)器負(fù)責(zé)解釋執(zhí)行,具有自己的語法結(jié)構(gòu)。?PHP可以用于管理動(dòng)態(tài)內(nèi)容、支持?jǐn)?shù)據(jù)庫、處理會(huì)話跟蹤,甚至構(gòu)建整個(gè)電子商務(wù)站點(diǎn)。?PHP支持多種數(shù)據(jù)庫,包括MySQL、Oracle和SQLServer等。?本節(jié)主要介紹如何在Windows系統(tǒng)平臺(tái)上開發(fā)PHP程序以及如何在HTML網(wǎng)頁中加入合法的PHP程序代碼。2.

PHP標(biāo)記符?標(biāo)記符,就是為了便于與其他內(nèi)容區(qū)分所使用的一種特殊符號(hào)?PHP代碼可以嵌入到HTML、JavaScipt等代碼中使用,因此就需要使用PHP標(biāo)

記符?PHP標(biāo)記符將PHP代碼與HTML內(nèi)容進(jìn)行識(shí)別,當(dāng)服務(wù)器讀取該段代碼時(shí),就會(huì)調(diào)用PHP編譯程序進(jìn)行編譯處理<?phpecho“Hello,world!”;?>3.

PHP注釋?注釋可以理解為代碼中的解釋和說明,是程序中不可缺少的重要元素。?使用注釋不僅能夠提高程序的可讀性,而且還有利于程序的后期維護(hù)工作。?注釋不會(huì)影響程序的執(zhí)行,因?yàn)樵趫?zhí)行時(shí),注釋部分的內(nèi)容不會(huì)被解釋器執(zhí)行。?在PHP程序中添加注釋的方法有3種,可以混合使用(1)“//”:C++語言風(fēng)格的單行注釋。(2)“/*……*/”:C語言風(fēng)格的多行注釋。(3)“#”:UNIX的Shell語言風(fēng)格的單行注釋。實(shí)例3-14.

標(biāo)識(shí)符?在系統(tǒng)的開發(fā)過程中,需要在程序中定義一些符號(hào)來標(biāo)記一些名稱,如變量名、函數(shù)名、類名等,這些符號(hào)被稱為標(biāo)識(shí)符?在PHP中,定義標(biāo)識(shí)符要遵偱一定的規(guī)則(1)標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成。(2)標(biāo)識(shí)符可以由一個(gè)或多個(gè)字符組成,且必須以字母或下劃線開頭。(3)當(dāng)標(biāo)識(shí)符用用變量時(shí)候,區(qū)分大小寫。(4)當(dāng)標(biāo)識(shí)符由多個(gè)單詞組成,那么應(yīng)使用下劃線進(jìn)行分隔,如user_name。5.

關(guān)鍵字?關(guān)鍵字就是編程語言里事先定義好并賦予了特殊含義的單詞,也稱為保留字。如echo用于輸出數(shù)據(jù),function用于定義函數(shù)。見下表所示,該表列舉了PHP中所有的關(guān)鍵字。?注意:(1)關(guān)鍵字不能作為常量、函數(shù)名或類名使用。(2)關(guān)鍵字雖然可作為變量名使用,但是容易導(dǎo)導(dǎo)致混淆,不建議使用。PHP數(shù)據(jù)類型1.

概述?數(shù)據(jù)是計(jì)算機(jī)程序的核心,計(jì)算機(jī)程序運(yùn)行時(shí)需要操作各種數(shù)據(jù),這些數(shù)據(jù)在程序運(yùn)行時(shí)臨時(shí)存儲(chǔ)在計(jì)算機(jī)內(nèi)存中。?定義變量時(shí),系統(tǒng)在計(jì)算機(jī)內(nèi)存中開辟了一塊空間用于存放這些數(shù)據(jù),空間名就是變量,空間大小則取決于所定義的數(shù)據(jù)類型。?因此就應(yīng)當(dāng)根椐程序的不同需要來使用各種類型的數(shù)據(jù),以避免浪費(fèi)內(nèi)存空間。?PHP支持的數(shù)據(jù)類型分為3類,分別是標(biāo)量數(shù)據(jù)類型,復(fù)合數(shù)據(jù)類型和特殊數(shù)據(jù)類型。2.

標(biāo)量數(shù)據(jù)類型?標(biāo)量數(shù)據(jù)類型是數(shù)據(jù)結(jié)構(gòu)中最基本的單元,只能存儲(chǔ)一種數(shù)據(jù)。(1)整型(integer)?整型數(shù)據(jù)類型取值只能是整數(shù),包括正整數(shù)、負(fù)整數(shù)和0。?整型數(shù)據(jù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制表示。八進(jìn)制整數(shù)前面必須加0;十六進(jìn)制整數(shù)前面必須加0x。?字長與操作系統(tǒng)有關(guān),在32位的操作系統(tǒng)中的有效范圍是-2147483648~+2147483647。$a=666;//十進(jìn)制$b=-666;//負(fù)整數(shù)$c=0666;//八進(jìn)制$d=0x666;//十六進(jìn)制(2)浮點(diǎn)型(float/double)?浮點(diǎn)數(shù)據(jù)類型可以存儲(chǔ)整數(shù)和小數(shù)。?字長與操作系統(tǒng)有關(guān),在32位的操作系統(tǒng)中的有效范圍是1.7E-308~1.7E+308。?浮點(diǎn)型數(shù)據(jù)有兩種書寫格式,分別是標(biāo)準(zhǔn)格式和科學(xué)計(jì)數(shù)法格式。5.1286,0.88,-18.9//標(biāo)準(zhǔn)格式8.31E2,32.64E-2//科學(xué)計(jì)數(shù)法格式(3)布爾型(boolean)?布爾型也稱邏輯型數(shù)據(jù)。取值范圍為真值(true)或假值(false)。$a=true;$b=false;?字符串是字符序列,比如“Helloworld!”,字符串可以是引號(hào)內(nèi)的任何文本?可以使用單引號(hào)或雙引號(hào),兩者的不同之處是:單引號(hào)中包含的變量名稱或者任何其他的文本都會(huì)不經(jīng)修改地按普通字符串輸出,而在雙引號(hào)中所包含的變量會(huì)自動(dòng)被替換成實(shí)際變量值。$x=666;$a='深圳歡迎你$x';$b="深圳歡迎你$x";echo$a;//輸出:深圳歡迎你$xecho$b;//輸出:深圳歡迎你666(4)字符串型(string)實(shí)例3-23.

復(fù)合數(shù)據(jù)類型(1)數(shù)組(

array)?數(shù)組在一個(gè)變量中存儲(chǔ)多個(gè)值<?php$cars=array("Volvo","BMW","SAAB");print_f($cars);?>輸出如下結(jié)果:Array([0]=>Volvo[1]=>BMW[2]=>SAAB)(2)對象(

object)?對象是存儲(chǔ)數(shù)據(jù)和有關(guān)如何處理數(shù)據(jù)的信息的數(shù)據(jù)類型。?與C++、Java等面向?qū)ο缶幊陶Z言類似,在PHP中聲明一個(gè)對象之前,必須先使用class關(guān)鍵字來定義一個(gè)類,然后再使用new運(yùn)算符來建立這個(gè)類的一個(gè)實(shí)例(instance),對象就是類的一個(gè)實(shí)例。。?類是包含屬性和方法的結(jié)構(gòu)。在類中定義數(shù)據(jù)類型,然后在該類的對象中使用此數(shù)據(jù)類型。classStudent{var$name;var$id;var$sex;var$grade_chinese;var$grade_maths;var$grade_english;function

grade_sum(){return$this->grade_chinese+$this->grade_maths+$this->grade_english;}}$stu_zhang=new

Student();$stu_zhang->name="張三";$stu_zhang->id="2022010501";$stu_zhang->sex="男";$stu_zhang->grade_chinese=70;$stu_zhang->grade_maths=90;$stu_zhang->grade_english=80;$stu_zhang->grade_sum();//調(diào)用對象$stu_zhang中的grade_sum()函數(shù)實(shí)例3-34.

特殊數(shù)據(jù)類型(1)資源(resource)?資源是一種特殊的數(shù)據(jù)類型,用于表示一個(gè)PHP的外部資源,由特定的函數(shù)來建立和使用。?任何資源在不需要使用時(shí)應(yīng)及時(shí)釋放。如果程序員忘記了釋放資源,PHP垃圾回收機(jī)制將自動(dòng)回收資源。(2)空值(null)?空值表示沒有為該變量設(shè)置任何值?由于null不區(qū)分大小寫,所以null和NULL是等效的?下列三種情況都表示空值1)尚未賦值2)被賦值為null3)被unset()函數(shù)銷毀的變量5.

數(shù)據(jù)類型檢測函數(shù)?PHP為變量或常量提供了很多檢測數(shù)據(jù)類型的函數(shù),有了這些函數(shù)用戶就可以對不同類型的數(shù)據(jù)進(jìn)行檢測。實(shí)例3-46.

數(shù)據(jù)類型的轉(zhuǎn)換?PHP變量屬于松散的數(shù)據(jù)類型,在定義PHP變量時(shí)不需要指定數(shù)據(jù)類型,數(shù)據(jù)類型是由賦給變量或常量的值自動(dòng)確定的。?當(dāng)不同數(shù)據(jù)類型的變量或常量之間進(jìn)行運(yùn)算時(shí),需要先將變量或常量轉(zhuǎn)換成相同的數(shù)據(jù)類型,再進(jìn)行運(yùn)算。?PHP數(shù)據(jù)類型轉(zhuǎn)換分為自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。?自動(dòng)類型轉(zhuǎn)換:是指PHP預(yù)處理器根據(jù)運(yùn)算需要,自動(dòng)將變量轉(zhuǎn)換成合適的數(shù)據(jù)類型再進(jìn)行運(yùn)算。例如,浮點(diǎn)數(shù)在與整數(shù)進(jìn)行算術(shù)運(yùn)算時(shí),PHP預(yù)處理器會(huì)先將整數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù),然后再進(jìn)行算術(shù)運(yùn)算。?強(qiáng)制類型轉(zhuǎn)換:是指程序員通過編程手段強(qiáng)制將某變量或常量的數(shù)據(jù)類型轉(zhuǎn)換成指定的數(shù)據(jù)類型。PHP

提供了3種強(qiáng)制類型轉(zhuǎn)換的方法:?1)在變量前面加上一個(gè)小括號(hào),然后把目標(biāo)數(shù)據(jù)類型寫在小括號(hào)中。例如:$b=(int)$a;。?2)使用通用類型轉(zhuǎn)換函數(shù)settype()。例如:settype($a,"int");?3)使用類型轉(zhuǎn)換函數(shù)intval()、strval()、floatval()。例如:$b=intval($a);PHP常量?常量是指在程序運(yùn)行過程中始終保持不變的數(shù)據(jù)。?常量的值被定義后,在程序的整個(gè)執(zhí)行期間,這個(gè)值都有效,不需要也不可以再次對該常量進(jìn)行賦值。?PHP提供兩種常量,分別是系統(tǒng)預(yù)定義常量和自定義常量。?常量是單個(gè)值的標(biāo)識(shí)符(名稱),在腳本中無法改變該值。?有效的常量名以字符或下劃線開頭(常量名稱前面沒有$符號(hào))。?與變量不同,常量貫穿整個(gè)腳本,是自動(dòng)全局的。1.

聲明和使用大小寫不敏感<?php//定義對大小寫不敏感的常量

define("LOGO","Welcome

to

Shenzhen!“,true);

echoLOGO;echo"<br>";echo

logo;//不會(huì)輸出常量的值?>運(yùn)行結(jié)果如下:WelcometoShenzhen!WelcometoShenzhen!大小寫敏感<?php//定義對大小寫敏感的常量define("LOGO","Welcome

to

Shenzhen!");

echoLOGO;echo"<br>";echo

logo;//不會(huì)輸出常量的值?>運(yùn)行結(jié)果如下:WelcometoShenzhen!logo?程序員在開發(fā)過程中不僅可以使用PHP預(yù)定義常量,也可以自己定義和使用常量。(1)使用define()函數(shù)定義常量define(“常量名稱","常量值",大小寫是否敏感);(2)使用defined()函數(shù)判斷常量是否已經(jīng)被定義bool

defined(常量名稱);(3)常量是全局的常量是自動(dòng)全局的,而且可以貫穿整個(gè)腳本使用。下面的例子在函數(shù)內(nèi)使用了一個(gè)常量,即使它在函數(shù)外定義<?phpdefine("LOGO","Welcome

to

Shenzhen!");functionmyTest(){echoLOGO;}myTest();?>運(yùn)行結(jié)果如下:Welcome

to

Shenzhen!?PHP中提供了大量預(yù)定義常量,用于獲取PHP中相關(guān)系統(tǒng)參數(shù)信息,但不能任意更改這些常量的值。?有些常量是由擴(kuò)展庫所定義的,只有加載了相關(guān)擴(kuò)展庫才能使用。2.

預(yù)定義常量實(shí)例3-5PHP變量1.

聲明和使用?變量是存儲(chǔ)信息的容器,用于存儲(chǔ)臨時(shí)數(shù)據(jù)信息,通過變量名實(shí)現(xiàn)內(nèi)存數(shù)據(jù)的存取操作。?定義變量時(shí),系統(tǒng)會(huì)自動(dòng)為該變量分配一個(gè)存儲(chǔ)空間來存放變量的值。?PHP變量用一個(gè)美元符號(hào)后面跟變量名來表示,變量名是區(qū)分大小寫的。?變量的命名規(guī)則與標(biāo)識(shí)符相同,由于PHP是弱類型語言,所以變量不需要先聲明,就可以直接進(jìn)行賦值使用。?變量的命名規(guī)則如下:?1)變量以$符號(hào)開頭,其后是變量的名稱;?2)變量名稱必須以字母或下劃線開頭;?3)變量名稱不能以數(shù)字開頭;?4)變量名稱只能包含字母,數(shù)字和下劃線(A-z、0-9以及_);?5)變量名稱對大小寫敏感($y與$Y是兩個(gè)不同的變量)。?聲明變量的語法格式如下:$變量名=變量值;?變量賦值就是為變量賦予具體的數(shù)據(jù)值,變量賦值有3種方式:?直接賦值?傳值賦值?引用賦值(1)直接賦值?直接賦值就是使用賦值運(yùn)算符“=”直接將數(shù)據(jù)值賦給某變量$a=135;//整型$b=135.79//浮點(diǎn)型$c=”how

are

you”;//字符串型$d=true;//布爾型(2)傳值賦值?傳值賦值就是使用賦值運(yùn)算符“=”將一個(gè)變量的值賦給另一個(gè)變量。?值得注意的是,此時(shí)修改一個(gè)變量的值不會(huì)影響到另一個(gè)變量。$a=135;$b=$a;//傳值賦值$a=200;(3)引用賦值?引用允許用兩個(gè)變量來指向同一個(gè)內(nèi)容,引用賦值也稱傳地址賦值。?使用引用賦值,簡單地將一個(gè)&符號(hào)加到將要賦值的變量前來實(shí)現(xiàn)將一個(gè)變量的地址傳遞給另一個(gè)變量,即兩個(gè)變量共同指向同一個(gè)內(nèi)存地址,兩個(gè)變量使用的是同一個(gè)值。$a=135;$b=&$a;//引用賦值實(shí)例3-6$a=200;?可變變量是一種特殊的變量,這種變量的名稱由另一個(gè)變量的值來確定,也就是用一個(gè)變量的“值”作為另一個(gè)變量的“名”。?聲明可變變量的方法是在變量名稱前面加兩個(gè)“$”符號(hào)$$可變變量名稱=可變變量的值2.

可變變量實(shí)例3-73.

作用域?變量的作用域是指變量在哪些地方可以被使用,在哪些地方不能被使用。?一般情況下,變量的作用范圍是包含變量的PHP程序塊。?PHP中的變量按其作用域的不同主要分為3種?局部變量?全局變量?靜態(tài)變量(1)局部變量?在函數(shù)內(nèi)部聲明的變量就是局部變量,它保存在內(nèi)存的棧中,所以速度很快。?其作用域是所在函數(shù),即從定義變量的語句開始到函數(shù)末尾。?在函數(shù)之外無效,而且在函數(shù)調(diào)用結(jié)束后被系統(tǒng)自動(dòng)回收。(2)全局變量?全局變量是指在所有函數(shù)之外定義的變量,其作用域是整個(gè)PHP文件,即從定義變量的語句開始到文件末尾,但在函數(shù)內(nèi)元效。?如果要在函數(shù)內(nèi)部訪問全局變量,要使用GLOBAL關(guān)鍵詞聲明global$變量名;(3)靜態(tài)變量?靜態(tài)變量在函數(shù)退出時(shí)不會(huì)丟失值,并且再次調(diào)用此函數(shù)時(shí)還能保留這個(gè)值。?聲明靜態(tài)變量只需在變量前加static關(guān)鍵字即可static$變量名=變量值;4.

生命周期?變量的生命周期指的是變量可被使用的一個(gè)時(shí)間段?PHP對變量的生命周期有如下規(guī)定:?局部變量的生命周期為其所在函數(shù)被調(diào)用的整個(gè)過程;?全局變量的生命周期為其所在的".php"腳本文件被調(diào)用的整個(gè)過程。PHP運(yùn)算符1.

概述?運(yùn)算符是一些用于將數(shù)據(jù)按一定規(guī)則進(jìn)行運(yùn)算的特定符號(hào)的集合。?運(yùn)算符所操作的數(shù)據(jù)被稱為操作數(shù),運(yùn)算符和操作數(shù)連接并可運(yùn)算出結(jié)果的式子被稱為表達(dá)式。?PHP的運(yùn)算符分為10類?算術(shù)運(yùn)算符用于處理算術(shù)運(yùn)算操作?PHP中常用的算術(shù)運(yùn)算符2.

算術(shù)運(yùn)算符實(shí)例3-8?PHP中字符串運(yùn)算符只有一個(gè),就是英文句號(hào)".",用于將兩個(gè)字符串連接起來,結(jié)合成一個(gè)新的字符串?$c=$a.$b;3.

字符串運(yùn)算符4.

賦值運(yùn)算符?賦值運(yùn)算符主要用于處理表達(dá)式的賦值操作,先將右邊表達(dá)式進(jìn)行運(yùn)算,再將結(jié)果值賦給左邊的變量。?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論