筆記3-運算符_第1頁
筆記3-運算符_第2頁
筆記3-運算符_第3頁
筆記3-運算符_第4頁
筆記3-運算符_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、昨日回顧2數(shù)據(jù)類型4整體劃分4整數(shù)類型int, integer43種整數(shù)表示法4進制轉(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強制轉(zhuǎn)換15與類型相關(guān)的系統(tǒng)函數(shù)15運算符16算術(shù)運算符16自增自減運算符:17前加加和后加加的區(qū)別:17比較運算符:17=和=的區(qū)別:18常見不同類型的比較(主要指標(biāo)量類型的數(shù)據(jù))非正常比較18邏輯運算符:& | !18邏輯與:18邏輯或:19邏

2、輯非: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中,只對該虛擬主機有效還可以出現(xiàn)在一個文件夾設(shè)定中()只對該文件夾有效。變量的理解:變量名和值的對應(yīng)關(guān)系引用關(guān)系,即使用該變量名,就是指使用該變量名所指代的變量值。圖示:傳值方式:前提:傳

3、值方式是專門指一個把變量的值傳遞給另一個變量的方式。值傳遞:將變量的值進行拷貝,然后把拷貝的新的值賦值給另一個變量。引用傳遞:將變量的引用關(guā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ù)定義變量(超全局?jǐn)?shù)組):都是數(shù)組,都具有超全局作用域,都是系統(tǒng)自動維護。$_GET:通過get方

4、式發(fā)送(提交)的數(shù)據(jù)集合。有4種形式可以發(fā)送get數(shù)據(jù):。 笑嘻嘻上一行黃色的部分,叫做“連接參數(shù)”,查詢字符串,還是$_SERVERQUERY_STRINGlocation.href = “abc.php?a=5&b=10&c=xyz”;location.assing(“abc.php?a=5&b=10&c=xyz”);獲取get數(shù)據(jù)形式只有一個:$_GET數(shù)據(jù)名$_POST:通過post方式發(fā)送(提交)的數(shù)據(jù)集合。獲取post數(shù)據(jù)形式只有一個:$_POST數(shù)據(jù)名$_REQUEST::通過get和post方式發(fā)送(提交)的數(shù)據(jù)集合的全部。$_SERVER:其中存儲了服務(wù)器端和客戶端的相關(guān)信息

5、。SERVER_NAME,DOCUEMNT_ROOTSERVER_ADDRREMOTE_ADDPHP_SELFQUERY_STRINGSCRIPT_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 bindec(“1”)=1$v2 = bindec(0123);/理解:

6、0123是8進制數(shù)字,其10進制值為:83,再當(dāng)作二進制字符串就是“83”,結(jié)果就只能是0 $v3 = bindec(“0123”);/理解:因為直接就是字符串了,就當(dāng)二進制字符串用,結(jié)果是1$v4 = octdec(0123);/理解:0123是8進制數(shù)字,其10進制值為:83,再當(dāng)作8進制字符串就是“83”,但8進制中沒有“8”這個數(shù)字,就只識別出一個“3”這個數(shù)字以下代碼測試:浮點類型float, double, real有兩種寫法:$v1 = 1.234;/帶小數(shù)點,就是浮點類型$v2 = 1.234E3;/含義是:1.234乘以10的3次方,即1234,帶E的形式就是浮點數(shù)$v3 =

7、 1234E3;/結(jié)果值是1234000,但也是一個浮點數(shù)。關(guān)于浮點數(shù)的細(xì)節(jié)知識 10進制小數(shù)轉(zhuǎn)二進制小數(shù)的做法:乘2并順序取整數(shù)部分沒有系統(tǒng)函數(shù)。 浮點數(shù)不應(yīng)直接進行大小比較因為浮點數(shù)在系統(tǒng)內(nèi)部(cpu級別),很可能都是不精確表達(dá)。要想進行比較,我們只能考慮自己應(yīng)用中的精度要求的基礎(chǔ)上,將其轉(zhuǎn)換為整數(shù)進行比較。通常的做法是:乘以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 =

8、 單引號字符串varstr2 = “雙引號字符串”;但在php中,單引號和雙引哈字符串,是有不同細(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)作一個布爾值來進行判斷。那么此時其實發(fā)生的是:會將該數(shù)據(jù)隱含轉(zhuǎn)換為布爾值。最常見的語法形式就是:if( 某數(shù)據(jù)/變量 ).

9、那么,在php中,其他各種數(shù)據(jù),隱含轉(zhuǎn)換為布爾值的時候,會當(dāng)作false的有:00.0null“”“0”array();/空數(shù)組未定義的變量/當(dāng)然要盡量避免其他數(shù)據(jù)就當(dāng)作true來看待了??词謨裕篜HP手冊附錄類型比較表使用 PHP 函數(shù)對變量 $x 進行比較數(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)體,就可以

10、使用兩個變量$k, $v1對象類型object在php中,對象跟js中的有比較大的區(qū)別。通常,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只是通過某種語法(或方式)來對其進行某些操作??疹愋蚽ull只是一個計算機中編程領(lǐng)域的“概念”類型,只是為了表達(dá)變量所存儲的數(shù)據(jù)的某種特殊情形所創(chuàng)建的概念沒有存數(shù)

11、據(jù),或沒有存有效的有意義的數(shù)據(jù)類型轉(zhuǎn)換自動轉(zhuǎn)換:通常自動轉(zhuǎn)換是弱類語言的一個最基本也最方便的一個特征:它會在各種運算中根據(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)為布爾,并進行比較o 否則,就轉(zhuǎn)為數(shù)字進行比較特別常用的一個轉(zhuǎn)換(不管是自動轉(zhuǎn)換還是強制轉(zhuǎn)換),就是字符串轉(zhuǎn)換為數(shù)字:“5”= 5/整數(shù)“5.5”=5.5浮點數(shù)“5abc”=5整數(shù)“5.5ab”=5.5浮點數(shù)“abc5”=0整數(shù)“abc”

12、=0整數(shù)“”=0強制轉(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è)置一個變量的類型,語法:setType(變量名,目標(biāo)類型) isset(), empty(), unset();o isset()判斷一個變量是否

13、存在數(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,float,stirng,bool)運算符算術(shù)運算符有以下幾個:+ - * / % + - 注意:注意取余運算%,先取整,再取余$v1

14、 = 7.5 % 3;/結(jié)果是:1$v2 = 7.5 % 3.5;/結(jié)果是:1對比js中:js中, 不會進行取整處理var v1 = 7.5 % 3;/結(jié)果是:1.5var v2 = 7.5 % 3.5;/結(jié)果是:0.5自增自減運算符: 常規(guī):對數(shù)字進行自加1或自減1。 字符串: 只能自增,且自增的效果就是“下一個字符” 布爾值遞增遞減無效 null遞減無效,遞增結(jié)果為1前加加和后加加的區(qū)別: 前+:先完成變量的遞增運算,再取得該變量的值參與別的運算。 后+:先將原來變量的值臨時存儲,再將變量值遞增,最后再將臨時存儲的值參與別的運算。 推論1:如果獨立語句中進行自加運算,前自加后自加沒有區(qū)別

15、。 推論2:如果前自加后自加是放在別的語句中,則會有所區(qū)別。 推論3: 前加加比后加加效率略高(在循環(huán)中建議使用前加加)。比較運算符:包括: = false 否則,如果有數(shù)字,均轉(zhuǎn)為數(shù)字比較: 否則,如果兩邊都是純數(shù)字字符串,轉(zhuǎn)為數(shù)字比較 否則,就按字符串比較字符串的比較規(guī)則為:按字符的先后順序依次一個一個比較,發(fā)現(xiàn)哪個大,則就表示整體大,后續(xù)不再比較邏輯運算符:& | !前提:都是針對布爾類型的值進行的運算,如果不是布爾,就會轉(zhuǎn)換為布爾。邏輯與:規(guī)則(真值表):true & true = true;true & false =falsefalse & true =false;false &

16、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,那么后續(xù)的函數(shù)isAge()就不再調(diào)用,自

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論