




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
php中的變量及&引用PHP 中一個美元符號后面跟上一個變量名稱,即表示一個變量。變量的名稱是對大小寫敏感的。php變量的范圍一、局部變量:在函數(shù)中聲明的變量,只能在自己的函數(shù)內(nèi)部使用。二、全局變量:在函數(shù)外聲明,在變量聲明以后的地方直到整個腳本結(jié)束運行結(jié)束前都可以用,包括在函數(shù)中和所有的中都可以使用。php的變量分不出是聲明還是使用在php中使用全局變量要通過global關(guān)鍵字將這個全局變量包含到函數(shù)中才能使用到,在global聲明之后才是使用全局的變量。參數(shù)就是局部變量,這個局部變量可以在調(diào)用是賦值。$a=10;function demo()global $a;/全局變量$a+=5;echo $a;三、php的靜態(tài)變量靜態(tài)變量只能聲明在函數(shù)中(類中),不能全局聲明作用:一個變量可以在同一個函數(shù)在多次調(diào)用中同用。A、靜態(tài)變量在靜態(tài)代碼段中保存B、一個函數(shù)多次調(diào)用之間共用,但只在第一次調(diào)用 函數(shù)是聲明到內(nèi)存,以后在調(diào)用,就不在聲明而直接使用。function test()static $a=0;$a+;echo $a;四、變量函數(shù):如果一個變量后面有$var= hello ;$var();就將尋找與變量值同名的函數(shù)hello();function one($a,$b)return $a+$b;function two($a,$b)return $a*$a+$b*$b;function three($a,$b)return $a*$a*$a+$b*$b*$b;$var=one;$var=two;$var=three;echo 結(jié)果.$var(3,4).;1、函數(shù)的功能決定是否使用這個函數(shù)2、函數(shù)的參數(shù)-決定函數(shù)怎么調(diào)用有幾個參數(shù),傳什么類型的值3、函數(shù)的返回值-決定調(diào)用后怎么處理這個函數(shù)php給提供2000多個函數(shù)多屬于系統(tǒng)函數(shù)都可以通過名稱直接使用。一定要先使用系統(tǒng)函數(shù)如果系統(tǒng)函數(shù)沒有想要的功能在去自己定義函數(shù)。五、函數(shù)調(diào)用方式1、常規(guī)函數(shù)bool copy (string source,string dest)2、帶有mixed,mixed表示可以傳遞任何類型的數(shù)據(jù)bool chown (string filename,mixed user)3、帶有&參數(shù)的函數(shù),表示引用賦值,這個參數(shù)不能傳值,只能傳一個變量,然后函數(shù)將變量值改變,我們在使用這個變量時,是變化的php的引用(就是在變量或者函數(shù) 、對象等前面加上&符號)在PHP 中引用的意思是:不同的名字訪問同一個變量內(nèi)容.注:此項內(nèi)容面試必考率達90%;耐心從AI看完吧,_A、變量的引用PHP 的引用允許你用兩個變量來指向同一個內(nèi)容B、函數(shù)的傳址調(diào)用傳址調(diào)用我就不多說了 下面直接給出代碼function test(&$a)$a=$a+100;$b=1;echo $b;/輸出test($b); /這里$b傳遞給函數(shù)的其實是$b的變量內(nèi)容所處的內(nèi)存地址,通過在函數(shù)里改變$a的值就可以改變$b的值了,好多人喜歡又在$b前加個&,不明白就死記吧,此處不用echo ;echo $b;/輸出101要注意的是,在這里test();的話就會出錯,因為是傳址,不是值C、函數(shù)的引用返回先看代碼function &test()static $b=0;/申明一個靜態(tài)變量$b=$b+1;echo $b;return $b;$a=test();/這條語句會輸出$b的值為$a=5;$a=test();/這條語句會輸出$b的值為2$a=&test();/這條語句會輸出$b的值為3下面解釋下:通過這種方式$a=test();得到的其實不是函數(shù)的引用返回,這跟普通的函數(shù)調(diào)用沒有區(qū)別至于原因:這是的規(guī)定規(guī)定通過$a=&test(); 方式得到的才是函數(shù)的引用返回至于什么是引用返回呢(手冊上說:引用返回用在當想用函數(shù)找到引用應(yīng)該被綁定在哪一個變量上面時。) 這句狗屁話害我半天沒看懂用上面的例子來解釋就是$a=test()方式調(diào)用函數(shù),只是將函數(shù)的值賦給$a而已,而$a做任何改變都不會影響到函數(shù)中的$b而通過$a=&test()方式調(diào)用函數(shù)呢, 他的作用是將return $b中的$b變量的內(nèi)存地址與$a變量的內(nèi)存地址指向了同一個地方即產(chǎn)生了相當于這樣的效果($a=&b;) 所以改變$a的值也同時改變了$b的值所以在執(zhí)行了$a=&test();$a=5;以后,$b的值變?yōu)榱?這里是為了讓大家理解函數(shù)的引用返回才使用靜態(tài)變量的,其實函數(shù)的引用返回多用在對象中D、對象的引用abc;/這里輸出ABCecho $c-abc;/這里輸出ABC$b-abc=DEF;echo $c-abc;/這里輸出DEF?以上代碼是在PHP5中的運行效果在PHP5中 對象的復(fù)制 是通過引用來實現(xiàn)的。上列中$b=new a; $c=$b; 其實等效于$b=new a; $c=&$b;PHP5中默認就是通過引用來調(diào)用對象, 但有時你可能想建立一個對象的副本,并希望原來的對象的改變不影響到副本 . 為了這樣的目的,PHP定義了一個特殊的方法,稱為_clone.E、引用的作用如果程序 比較大,引用同一個對象的變量比較多,并且希望用完該對象后手工清除它,個人建議用 & 方式,然后用$var=null的方式清除. 其它時候還是用php5的默認方式吧. 另外, php5中對于大數(shù)組的傳遞,建議用 & 方式, 畢竟節(jié)省內(nèi)存空間使用。F、取消引用當你 unset 一個引用,只是斷開了變量名和變量內(nèi)容之間的綁定。這并不意味著變量內(nèi)容被銷毀了。例如:不會 unset斷開 $b,只是 $a,echo $b還是1G、global 引用當用 global $var 聲明一個變量時實際上建立了一個到全局變量的引用。也就是說和這樣做是相同的:這意味著,例如,unset $var 不會 unset 全局變量。H、$this在一個對象的方法中,$this 永遠是調(diào)用它的對象的引用。I、php”寫時拷貝”的原理php中對于地址的指向(類似指針)功能 不是由用戶自己來實現(xiàn)的,是由php 核心實現(xiàn)的,php中引用采用的是“寫時拷貝”的原理,就是除非發(fā)生寫操作,指向同一個地址的變量或者對象是不會被拷貝的。即:當把一個數(shù)組$A賦值給一個變量$B:$B=$A,對PHP內(nèi)核來說,是立即把$A的數(shù)據(jù)結(jié)構(gòu)完整地復(fù)制給$B,還是先在$B上建立一個對于$A的引用, 只有當把新的元素寫入$B時,這時$A的結(jié)構(gòu)才被復(fù)制給$B,同時$B的結(jié)構(gòu)被修改,也就是類似于操作系統(tǒng)內(nèi)核復(fù)制進程內(nèi)存頁面時所采用的“寫時拷貝”技 術(shù)。通俗的講1 如果有下面的代碼$a=ABC;$b=$a;其實此時$a與$b都是指向同一內(nèi)存地址而并不是$a與$b占用不同的內(nèi)存 如果在上面的代碼基礎(chǔ)上再加上如下代碼$a=EFG;由于$a與$b所指向的內(nèi)存的數(shù)據(jù) 要重新寫一次了,此時php核心會自動判斷自動為$b生成一個$a的數(shù)據(jù)拷貝,重新申請一塊內(nèi)存進行存儲4、帶有的函數(shù)表示這個參數(shù)是可選的,如果你傳值了就可以使用你傳的值,如果沒傳就使用默認值可選值和必須值,必須重后到前設(shè)置直接聲明函數(shù)時,就為參數(shù)給初值bool arsort (array &array , int sort_flags)function demo($a,$b=20,$c=10)echo $a.$b,$c;5、帶有的參數(shù)的函數(shù),表示可以傳任意多個參數(shù)int array_unshif(array &array,mixed var,mixed.)function demo()$args=func_get_args();$sum=0;for($i=0;$icount($args);$i+)$sum+=$args$i;fu
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綠色環(huán)?;顒涌偨Y(jié)模版
- 說“之”總結(jié)模版
- 八年級生物下冊知識點歸納總結(jié)模版
- 幼教法律法規(guī)試題及答案
- 營業(yè)員計算機考試題及答案
- 銀行消防知識試題及答案
- 醫(yī)院消防安全隨堂測試題及答案
- 藥店會計考試試題及答案
- 央企國企面試題目及答案
- 秀山公務(wù)員考試題及答案
- 高效液相色譜質(zhì)譜聯(lián)用技術(shù)在藥物分析中的應(yīng)用
- 工行內(nèi)部控制手冊總體框架
- 透析患者貧血的護理查房
- 2024年煤礦各類牌板制作標準及使用規(guī)定附煤礦井下牌板模版及標準
- 視頻會議系統(tǒng)投標方案(技術(shù)標)
- 《企業(yè)運營管理》題庫集答案
- 西北農(nóng)林科技大學專業(yè)學位研究生課程案例庫建設(shè)項目申請書(MBA)
- 構(gòu)美-空間形態(tài)設(shè)計學習通課后章節(jié)答案期末考試題庫2023年
- 李白《將進酒》全文
- 第三單元名著導(dǎo)讀《經(jīng)典常談》04《詩經(jīng)》第四 統(tǒng)編版語文八年級下冊
- 華為采購模式介紹
評論
0/150
提交評論