




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、昨日回顧2數(shù)據(jù)類型4整體劃分4整數(shù)類型int, integer43種整數(shù)表示法4進(jìn)制轉(zhuǎn)換問題4浮點類型float, double, real8有兩種寫法:8關(guān)于浮點數(shù)的細(xì)節(jié)知識9字符串類型string10布爾類型:bool, boolean12數(shù)組類型13對象類型object13資源類型resource14空類型null14類型轉(zhuǎn)換14自動轉(zhuǎn)換:14強(qiáng)制轉(zhuǎn)換15與類型相關(guān)的系統(tǒng)函數(shù)15運算符16算術(shù)運算符16自增自減運算符:17前加加和后加加的區(qū)別:17比較運算符:17=和=的區(qū)別:18常見不同類型的比較(主要指標(biāo)量類型的數(shù)據(jù))非正常比較18邏輯運算符:&& | !18邏輯與:
2、18邏輯或:19邏輯非:19短路現(xiàn)象之邏輯與短路:19短路現(xiàn)象之邏輯或短路:19字符串運算符:19賦值運算符:20條件(三目)運算符:20昨日回顧有關(guān)DirectoryIndex的說明:DirectoryIndex作用:當(dāng)用戶請求的地址中沒有指定要訪問的網(wǎng)頁名稱的時候,在由該指示器來設(shè)定返回給用戶的網(wǎng)頁默認(rèn)網(wǎng)頁。對于站點來說,就是主頁。它可以出現(xiàn)在主配置文件httpd.conf中,對全局有效。也可以出現(xiàn)在virtualHost中,只對該虛擬主機(jī)有效還可以出現(xiàn)在一個文件夾設(shè)定中(<directory .>)只對該文件夾有效。變量的理解:變量名和值的對應(yīng)關(guān)系引用關(guān)系,即使用該變量名,就
3、是指使用該變量名所指代的變量值。圖示:傳值方式:前提:傳值方式是專門指一個把變量的值傳遞給另一個變量的方式。值傳遞:將變量的值進(jìn)行拷貝,然后把拷貝的新的值賦值給另一個變量。引用傳遞:將變量的引用關(guān)系進(jìn)行拷貝,然后用此關(guān)系將數(shù)據(jù)跟另一個變量建立聯(lián)系在php中,默認(rèn)變量之間傳值,都是使用值傳遞。如果想要實現(xiàn)引用傳遞,必須使用引用傳遞符號:&可變變量:當(dāng)一個變量的名字又是一個變量的時候,就稱為可變變量。形式上,通常就是兩個(或以上)的“$”連續(xù)出現(xiàn)。$abc = “v1”;$v1 = 123;echo $abc; /理解:$($abc) => $v1 =>123預(yù)定義變量(超全局
4、數(shù)組):都是數(shù)組,都具有超全局作用域,都是系統(tǒng)自動維護(hù)。$_GET:通過get方式發(fā)送(提交)的數(shù)據(jù)集合。有4種形式可以發(fā)送get數(shù)據(jù):<form action=”abc.php” method=”get” >。</form><a href=”abc.php?a=5&b=10&c=xyz”> 笑嘻嘻</a>上一行黃色的部分,叫做“連接參數(shù)”,查詢字符串,還是$_SERVERQUERY_STRINGlocation.href = “abc.php?a=5&b=10&c=xyz”;location.assing(“ab
5、c.php?a=5&b=10&c=xyz”);獲取get數(shù)據(jù)形式只有一個:$_GET數(shù)據(jù)名$_POST:通過post方式發(fā)送(提交)的數(shù)據(jù)集合。<form action=”abc.php” method=”post” >。</form>獲取post數(shù)據(jù)形式只有一個:$_POST數(shù)據(jù)名$_REQUEST::通過get和post方式發(fā)送(提交)的數(shù)據(jù)集合的全部。$_SERVER:其中存儲了服務(wù)器端和客戶端的相關(guān)信息。SERVER_NAME,DOCUEMNT_ROOTSERVER_ADDRREMOTE_ADDPHP_SELFQUERY_STRINGSCRIPT
6、_FILENAME$GLOBALS:常量:定義形式:使用函數(shù)定義: define(“常量名”, 常量值)使用const關(guān)鍵字: const 常量名=常量值;注:常量值只能是標(biāo)量類型(string,int,float,bool)使用常量:直接使用常量名:使用函數(shù): constant(“常量名”);比如:const C1 = 1;constC2 = 2;for($i = 1; $i <=2; $i+)echo constant( “C” . $i );常量變量的區(qū)別:定義形式,使用形式,作用域范圍,可用類型不同。判斷常量是否存在:就一個函數(shù):defined(“常量名”)使用一個未定義的常量(
7、特殊情況):php會報一個notice錯誤,并又同時“認(rèn)可”該常量,并且其值就是該常量的名字本身。預(yù)定義常量:有很多很多,M_PI, PHP_OS, PHP_VERSION, E_ERROR, .魔術(shù)常量:很少的幾個而已:_DIR_, _FILE_, _LINE_數(shù)據(jù)類型整體劃分· 標(biāo)量類型: int, float, string, bool· 復(fù)合類型: array, object· 特殊類型: null, resouce整數(shù)類型int, integer3種整數(shù)表示法· 十進(jìn)制寫法:123:$n1 = 123;· 八進(jìn)制寫法: 0123$n2
8、 = 0123;· 十六進(jìn)制寫法: 0x123$n3 = 0x123;進(jìn)制轉(zhuǎn)換問題先學(xué)習(xí)幾個單詞:dec: 十進(jìn)制bin:二進(jìn)制oct:八進(jìn)制hex:十六進(jìn)制· 十進(jìn)制轉(zhuǎn)二進(jìn)制decbin(),除2取余倒著寫$v1 = decbin(123);/注意:參數(shù)必須是10進(jìn)制數(shù)字,轉(zhuǎn)換后的結(jié)果必然是二進(jìn)制字符串。我們也可以通過手工的方式來完成10進(jìn)制轉(zhuǎn)2進(jìn)制的完整過程?;咀龇ㄊ牵簩?0進(jìn)制數(shù)字除以2,并取得余數(shù),如果除得的商不為0,則繼續(xù)除以2,并繼續(xù)去的余數(shù),直到商為0。然后將所有取得的余數(shù),按“倒序?qū)懗觥?,就是對?yīng)的進(jìn)制數(shù)字:· 十進(jìn)制轉(zhuǎn)八進(jìn)制decoct(),除
9、8取余倒著寫使用系統(tǒng)函數(shù):$r1 = decoct(十進(jìn)制數(shù)字);/結(jié)果是一個8進(jìn)制數(shù)字字符串。我們也可以通過手工的方式來完成10進(jìn)制轉(zhuǎn)8進(jìn)制的完整過程?;咀龇ㄊ牵簩?0進(jìn)制數(shù)字除以8,并取得余數(shù),如果除得的商不為0,則繼續(xù)除以8,并繼續(xù)去的余數(shù),直到商為0。然后將所有取得的余數(shù),按“倒序?qū)懗觥?,就是對?yīng)的8進(jìn)制數(shù)字:· 十進(jìn)制轉(zhuǎn)十六進(jìn)制dechex(),除16取余倒著寫16進(jìn)制的數(shù)字包括如下(從0開始):0123456789ABCDEF對應(yīng)10進(jìn)制其實是:0123456789101112131415系統(tǒng)函是:dechex(十進(jìn)制數(shù)字), 結(jié)果是16進(jìn)制數(shù)字字符串。手工運算:基本做
10、法是:將10進(jìn)制數(shù)字除以16,并取得余數(shù),如果除得的商不為0,則繼續(xù)除以16,并繼續(xù)去的余數(shù),直到商為0。然后將所有取得的余數(shù),按“倒序?qū)懗觥?,就是對?yīng)的16進(jìn)制數(shù)字:· 二進(jìn)制轉(zhuǎn)十進(jìn)制bindec(),每位數(shù)值乘以2的權(quán)值然后相加先理解一個“權(quán)值”概念:就是某位數(shù)字上的該數(shù)字所代表的數(shù)的大小。比如:10進(jìn)制數(shù)字1234,其代表:1*10 3+ 2*102 + 3*101 + 4*100 = 1000+ 200 + 30 + 4;這里,10 3, 102 ,101 ,等等,就稱為權(quán)值。二進(jìn)制轉(zhuǎn)10進(jìn)制,就是將每位數(shù)值乘以對應(yīng)位上的權(quán)值,然后相加得到的結(jié)果。用系統(tǒng)函數(shù)是:$v1 = b
11、indec(“二進(jìn)制數(shù)字字符串”) ;/得到的結(jié)果是10進(jìn)制數(shù)字結(jié)果:手工轉(zhuǎn)換:二進(jìn)制數(shù)字的權(quán)值,從右到左,分別是:20,21,22,23,24,25,.即分別是(10進(jìn)制大?。?, 2,4,8,16,32手工計算:1010110=1*26 + 0*XX + 1*24 + 0*XX + 1*22 + 1*21 + 0/說明,其中XX表示無所謂的數(shù)字值=64 + 0 + 16 + 0 + 4 + 2 + 0=86· 八進(jìn)制轉(zhuǎn)十進(jìn)制octdec() ,每位數(shù)值乘以8的權(quán)值然后相加用系統(tǒng)函數(shù)是:$v1 = octdec(“8進(jìn)制數(shù)字字符串”) ;/得到的結(jié)果是10進(jìn)制數(shù)字結(jié)果:手工算法統(tǒng)
12、2進(jìn)制轉(zhuǎn)換為10進(jìn)制,略。· 十六進(jìn)制轉(zhuǎn)十進(jìn)制hexdec() ,每位數(shù)值乘以16的權(quán)值然后相加用系統(tǒng)函數(shù)是:$v1 = hexdec(“16進(jìn)制數(shù)字字符串”) ;/得到的結(jié)果是10進(jìn)制數(shù)字結(jié)果:· 注意:十進(jìn)制轉(zhuǎn)為其他進(jìn)制結(jié)果是字符串,其他進(jìn)制轉(zhuǎn)為十進(jìn)制要求給定數(shù)據(jù)是字符串形式思考:$v1 = bindec(123);/理解過程:bindec(“123”) =>bindec(“1”)=>1$v2 = bindec(0123);/理解:0123是8進(jìn)制數(shù)字,其10進(jìn)制值為:83,再當(dāng)作二進(jìn)制字符串就是“83”,結(jié)果就只能是0 $v3 = bindec(“0123
13、”);/理解:因為直接就是字符串了,就當(dāng)二進(jìn)制字符串用,結(jié)果是1$v4 = octdec(0123);/理解:0123是8進(jìn)制數(shù)字,其10進(jìn)制值為:83,再當(dāng)作8進(jìn)制字符串就是“83”,但8進(jìn)制中沒有“8”這個數(shù)字,就只識別出一個“3”這個數(shù)字以下代碼測試:浮點類型float, double, real有兩種寫法:$v1 = 1.234;/帶小數(shù)點,就是浮點類型$v2 = 1.234E3;/含義是:1.234乘以10的3次方,即1234,帶E的形式就是浮點數(shù)$v3 = 1234E3;/結(jié)果值是1234000,但也是一個浮點數(shù)。關(guān)于浮點數(shù)的細(xì)節(jié)知識· 10進(jìn)制小數(shù)轉(zhuǎn)二進(jìn)制小數(shù)的做法:乘
14、2并順序取整數(shù)部分沒有系統(tǒng)函數(shù)。· 浮點數(shù)不應(yīng)直接進(jìn)行大小比較因為浮點數(shù)在系統(tǒng)內(nèi)部(cpu級別),很可能都是不精確表達(dá)。要想進(jìn)行比較,我們只能考慮自己應(yīng)用中的精度要求的基礎(chǔ)上,將其轉(zhuǎn)換為整數(shù)進(jìn)行比較。通常的做法是:乘以10的精度位數(shù)數(shù)次方,比如精度要求3位有效數(shù)字,則乘以103次方· 當(dāng)整數(shù)運算的結(jié)果超出整數(shù)的范圍后,會自動轉(zhuǎn)換為浮點數(shù)。整數(shù)的范圍,在32位系統(tǒng)下,大約正負(fù)20多億字符串類型stringjs中,雖然有2種字符串表達(dá)形式,但也應(yīng)該理解為是一種字符串:var str1 = 單引號字符串varstr2 = “雙引號字符串”;但在php中,單引號和雙引哈字符串,是有
15、不同細(xì)節(jié)含義的字符串。php中,有4種字符串形式:單引號字符串:結(jié)果:雙引號字符串:結(jié)果:更多的轉(zhuǎn)義符見手冊如下:nowdoc(單引號)定界符字符串:輸出結(jié)果為:heredoc(雙引號)定界符字符串:結(jié)果:布爾類型:bool, boolean用于標(biāo)識某種只有兩個狀態(tài)值的數(shù)據(jù):true,false吃沒吃,去沒去,有沒有。在應(yīng)用出,我們常常會(需要)直接將一個數(shù)據(jù)(可能是各種其他類型)當(dāng)作一個布爾值來進(jìn)行判斷。那么此時其實發(fā)生的是:會將該數(shù)據(jù)隱含轉(zhuǎn)換為布爾值。最常見的語法形式就是:if( 某數(shù)據(jù)/變量 ).那么,在php中,其他各種數(shù)據(jù),隱含轉(zhuǎn)換為布爾值的時候,會當(dāng)作false的有:00.0nul
16、l“”“0”array();/空數(shù)組未定義的變量/當(dāng)然要盡量避免其他數(shù)據(jù)就當(dāng)作true來看待了??词謨裕篜HP手冊附錄類型比較表使用 PHP 函數(shù)對變量 $x 進(jìn)行比較數(shù)組類型標(biāo)識一系列數(shù)據(jù)的“有序排列”的集合體。php中,數(shù)組的下標(biāo)可以使用整數(shù)或字符串。數(shù)字下標(biāo)常說“索引號”,字符串下標(biāo)常說“鍵名”。實際上,在的報錯系統(tǒng)中,都叫做“”,或數(shù)組中還可以存儲數(shù)組,就可以構(gòu)成“多維數(shù)組”的形式。數(shù)組遍歷在中有專門語法:foreach( 數(shù)組名 as 下標(biāo)變量$k => 值變量$v1 )/這里就是循環(huán)體,就可以使用兩個變量$k, $v1對象類型object在php中,對象跟js中的有比較大的區(qū)
17、別。通常,js中的對象,有自定定義的(創(chuàng)建的),也有“現(xiàn)成”,比如window,location,標(biāo)簽對象。但:php中的對象,通常都是指自己定義的對象,純語法的。資源類型resource· 含義:基本上都是指對外部數(shù)據(jù)的引用。(數(shù)據(jù)非php代碼生成的)不是PHP語言通過某種語法形式“創(chuàng)造”的數(shù)據(jù),而是外部本來就有該數(shù)據(jù)(比如數(shù)據(jù)庫,文件,圖片),PHP只是通過某種語法(或方式)來對其進(jìn)行某些操作。空類型null只是一個計算機(jī)中編程領(lǐng)域的“概念”類型,只是為了表達(dá)變量所存儲的數(shù)據(jù)的某種特殊情形所創(chuàng)建的概念沒有存數(shù)據(jù),或沒有存有效的有意義的數(shù)據(jù)類型轉(zhuǎn)換自動轉(zhuǎn)換:通常自動轉(zhuǎn)換是弱類語言的
18、一個最基本也最方便的一個特征:它會在各種運算中根據(jù)運算符的需要也將非該運算符所能處理的數(shù)據(jù)轉(zhuǎn)換為可以處理的數(shù)據(jù)。常見情形如下:· if(數(shù)據(jù)):轉(zhuǎn)為bool類型· 算術(shù)運算符:轉(zhuǎn)為數(shù)字類型· 連接運算符:轉(zhuǎn)為字符串類型· 比較運算符:轉(zhuǎn)為布爾類型或數(shù)字類型o 兩邊如果有至少一個布爾,則另一邊就會轉(zhuǎn)為布爾,并進(jìn)行比較o 否則,就轉(zhuǎn)為數(shù)字進(jìn)行比較特別常用的一個轉(zhuǎn)換(不管是自動轉(zhuǎn)換還是強(qiáng)制轉(zhuǎn)換),就是字符串轉(zhuǎn)換為數(shù)字:“5”=>> 5/整數(shù)“5.5”=>>5.5浮點數(shù)“5abc”=>>5整數(shù)“5.5ab”=>>5
19、.5浮點數(shù)“abc5”=>>0整數(shù)“abc”=>>0整數(shù)“”=>>0強(qiáng)制轉(zhuǎn)換就是通過語法來讓某數(shù)據(jù)轉(zhuǎn)換為另一種類型的數(shù)據(jù),語法格式為:(目標(biāo)類型)數(shù)據(jù);注意:我們并不能使用該語法將任意類型的數(shù)據(jù),轉(zhuǎn)換為其他任意類型因為有些類型之間的轉(zhuǎn)換是沒有意義的系統(tǒng)內(nèi)部也沒有定義過該類型轉(zhuǎn)換的規(guī)則。最常見的轉(zhuǎn)換通常就發(fā)生在基本(標(biāo)量)數(shù)據(jù)類型之間。與類型相關(guān)的系c統(tǒng)函數(shù)· var_dump():能夠輸出一個變量的完整信息。· getType():獲取一個變量的類型名稱,結(jié)果是一個單詞(字符串), setType();設(shè)置一個變量的類型,語法:setTy
20、pe(變量名,目標(biāo)類型)· isset(), empty(), unset();o isset()判斷一個變量是否存在數(shù)據(jù):o empty()判斷一個數(shù)據(jù)是否為空:接近我們的日常觀念(沒有就是空)o unset():銷毀(刪除)一個變量。· is_XX類型() 系列函數(shù):判斷某個數(shù)據(jù)是否是某種類型,包括:o is_int(), is_float(), is_numeric(),is_bool(), is_array(), is_scalar():is_numeric()對:3, 3.5,“3”,“3.14”判斷都是trueis_scalar():判斷是否為標(biāo)量類型(即int
21、,float,stirng,bool)運算符算術(shù)運算符有以下幾個:+ - * / % + -· 注意:注意取余運算%,先取整,再取余$v1 = 7.5 % 3;/結(jié)果是:1$v2 = 7.5 % 3.5;/結(jié)果是:1對比js中:js中, 不會進(jìn)行取整處理var v1 = 7.5 % 3;/結(jié)果是:1.5var v2 = 7.5 % 3.5;/結(jié)果是:0.5自增自減運算符:· 常規(guī):對數(shù)字進(jìn)行自加1或自減1。· 字符串: 只能自增,且自增的效果就是“下一個字符”· 布爾值遞增遞減無效· null遞減無效,遞增結(jié)果為1前加加和后加加的區(qū)別:
22、3; 前+:先完成變量的遞增運算,再取得該變量的值參與別的運算。· 后+:先將原來變量的值臨時存儲,再將變量值遞增,最后再將臨時存儲的值參與別的運算。· 推論1:如果獨立語句中進(jìn)行自加運算,前自加后自加沒有區(qū)別 。· 推論2:如果前自加后自加是放在別的語句中,則會有所區(qū)別。· 推論3: 前加加比后加加效率略高(在循環(huán)中建議使用前加加)。比較運算符:包括:> >= < <= =松散相等 != =嚴(yán)格相等 !=和=的區(qū)別:=:松散相等,比較的是兩個數(shù)據(jù)“類型轉(zhuǎn)換之后”是否有可能相等,也常常認(rèn)為是“數(shù)據(jù)內(nèi)容是否相同”=:嚴(yán)格相等,全等,
23、只有兩個數(shù)據(jù)的類型和數(shù)據(jù)的內(nèi)容都完全一致,才相等。嚴(yán)重推薦參考手冊附錄類型比較表。常見不同類型的比較(主要指標(biāo)量類型的數(shù)據(jù))非正常比較· 正常比較數(shù)字的大小比較· 如果有布爾值,均轉(zhuǎn)為布爾值比較:規(guī)則:true > false· 否則,如果有數(shù)字,均轉(zhuǎn)為數(shù)字比較:· 否則,如果兩邊都是純數(shù)字字符串,轉(zhuǎn)為數(shù)字比較· 否則,就按字符串比較字符串的比較規(guī)則為:按字符的先后順序依次一個一個比較,發(fā)現(xiàn)哪個大,則就表示整體大,后續(xù)不再比較邏輯運算符:&& | !前提:都是針對布爾類型的值進(jìn)行的運算,如果不是布爾,就會轉(zhuǎn)換為布爾。邏輯與
24、:規(guī)則(真值表):true && true => true;true && false =>falsefalse && true =>false;false && false=>false;只有兩個都是true,結(jié)果才是true只要有一個是false,結(jié)果就是false邏輯或:規(guī)則(真值表):true | true => true;true | false =>truefalse | true =>true;false | false=>false;只有兩個都是false,結(jié)果才是false只要有一個是true,結(jié)果就是true邏輯非:!true => false!false =>true短路現(xiàn)象之邏輯與短路:在實際應(yīng)用中,參與邏輯運算的數(shù)據(jù),往往都不是直接的布爾值,而是有關(guān)計算之后的布爾結(jié)果值。大致如下:if( IsFemale( $uName ) && isAge($uName) > 18).echo “女士優(yōu)先”此時,如果IsFemale()函數(shù)判斷的結(jié)果是false
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年小學(xué)道法(教師招聘面試可用)一年級下冊1 我們愛整潔 說課稿
- 做送餐員簽合同
- 咖啡店合作經(jīng)營協(xié)議二零二五年
- 二零二五版塔吊司機(jī)承包合同書協(xié)議書
- 公司的合同管理制
- 二零二五版酒店經(jīng)營權(quán)承包合同書范例
- 二零二五雇傭保潔人員合同書范例
- 旅行社導(dǎo)游勞動合同書二零二五年
- 市場經(jīng)濟(jì)專題講座課件
- 以數(shù)字化創(chuàng)新驅(qū)動醫(yī)療服務(wù)提升的研究與實踐
- 滿堂腳手架計算書
- 01K403 風(fēng)機(jī)盤管安裝
- 藥理學(xué)教學(xué)課件:抗流感病毒藥
- 2023年承德縣小升初英語考試題庫及答案解析
- 2023年大學(xué)生《思想道德與法治》考試題庫附答案(712題)
- GB/T 7705-2008平版裝潢印刷品
- GB/T 41326-2022六氟丁二烯
- 廣西玉林市容縣十里中學(xué)九年級化學(xué) 酸堿鹽復(fù)習(xí)課件 人教新課標(biāo)版
- 鏟車三個月、半年、年保養(yǎng)記錄(新)
- 腦電圖(圖譜)課件
- 《概率思想對幾個恒等式的證明(論文)9600字》
評論
0/150
提交評論