




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
php中的變量及&引用PHP 中一個(gè)美元符號(hào)后面跟上一個(gè)變量名稱,即表示一個(gè)變量。變量的名稱是對(duì)大小寫敏感的。php變量的范圍一、局部變量:在函數(shù)中聲明的變量,只能在自己的函數(shù)內(nèi)部使用。二、全局變量:在函數(shù)外聲明,在變量聲明以后的地方直到整個(gè)腳本結(jié)束運(yùn)行結(jié)束前都可以用,包括在函數(shù)中和所有的中都可以使用。php的變量分不出是聲明還是使用在php中使用全局變量要通過global關(guān)鍵字將這個(gè)全局變量包含到函數(shù)中才能使用到,在global聲明之后才是使用全局的變量。參數(shù)就是局部變量,這個(gè)局部變量可以在調(diào)用是賦值。$a=10;function demo()global $a;/全局變量$a+=5;echo $a;三、php的靜態(tài)變量靜態(tài)變量只能聲明在函數(shù)中(類中),不能全局聲明作用:一個(gè)變量可以在同一個(gè)函數(shù)在多次調(diào)用中同用。A、靜態(tài)變量在靜態(tài)代碼段中保存B、一個(gè)函數(shù)多次調(diào)用之間共用,但只在第一次調(diào)用 函數(shù)是聲明到內(nèi)存,以后在調(diào)用,就不在聲明而直接使用。function test()static $a=0;$a+;echo $a;四、變量函數(shù):如果一個(gè)變量后面有$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ù)的功能決定是否使用這個(gè)函數(shù)2、函數(shù)的參數(shù)-決定函數(shù)怎么調(diào)用有幾個(gè)參數(shù),傳什么類型的值3、函數(shù)的返回值-決定調(diào)用后怎么處理這個(gè)函數(shù)php給提供2000多個(gè)函數(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ù),表示引用賦值,這個(gè)參數(shù)不能傳值,只能傳一個(gè)變量,然后函數(shù)將變量值改變,我們?cè)谑褂眠@個(gè)變量時(shí),是變化的php的引用(就是在變量或者函數(shù) 、對(duì)象等前面加上&符號(hào))在PHP 中引用的意思是:不同的名字訪問同一個(gè)變量?jī)?nèi)容.注:此項(xiàng)內(nèi)容面試必考率達(dá)90%;耐心從AI看完吧,_A、變量的引用PHP 的引用允許你用兩個(gè)變量來指向同一個(gè)內(nèi)容B、函數(shù)的傳址調(diào)用傳址調(diào)用我就不多說了 下面直接給出代碼function test(&$a)$a=$a+100;$b=1;echo $b;/輸出test($b); /這里$b傳遞給函數(shù)的其實(shí)是$b的變量?jī)?nèi)容所處的內(nèi)存地址,通過在函數(shù)里改變$a的值就可以改變$b的值了,好多人喜歡又在$b前加個(gè)&,不明白就死記吧,此處不用echo ;echo $b;/輸出101要注意的是,在這里test();的話就會(huì)出錯(cuò),因?yàn)槭莻髦罚皇侵礐、函數(shù)的引用返回先看代碼function &test()static $b=0;/申明一個(gè)靜態(tài)變量$b=$b+1;echo $b;return $b;$a=test();/這條語句會(huì)輸出$b的值為$a=5;$a=test();/這條語句會(huì)輸出$b的值為2$a=&test();/這條語句會(huì)輸出$b的值為3下面解釋下:通過這種方式$a=test();得到的其實(shí)不是函數(shù)的引用返回,這跟普通的函數(shù)調(diào)用沒有區(qū)別至于原因:這是的規(guī)定規(guī)定通過$a=&test(); 方式得到的才是函數(shù)的引用返回至于什么是引用返回呢(手冊(cè)上說:引用返回用在當(dāng)想用函數(shù)找到引用應(yīng)該被綁定在哪一個(gè)變量上面時(shí)。) 這句狗屁話害我半天沒看懂用上面的例子來解釋就是$a=test()方式調(diào)用函數(shù),只是將函數(shù)的值賦給$a而已,而$a做任何改變都不會(huì)影響到函數(shù)中的$b而通過$a=&test()方式調(diào)用函數(shù)呢, 他的作用是將return $b中的$b變量的內(nèi)存地址與$a變量的內(nèi)存地址指向了同一個(gè)地方即產(chǎn)生了相當(dāng)于這樣的效果($a=&b;) 所以改變$a的值也同時(shí)改變了$b的值所以在執(zhí)行了$a=&test();$a=5;以后,$b的值變?yōu)榱?這里是為了讓大家理解函數(shù)的引用返回才使用靜態(tài)變量的,其實(shí)函數(shù)的引用返回多用在對(duì)象中D、對(duì)象的引用abc;/這里輸出ABCecho $c-abc;/這里輸出ABC$b-abc=DEF;echo $c-abc;/這里輸出DEF?以上代碼是在PHP5中的運(yùn)行效果在PHP5中 對(duì)象的復(fù)制 是通過引用來實(shí)現(xiàn)的。上列中$b=new a; $c=$b; 其實(shí)等效于$b=new a; $c=&$b;PHP5中默認(rèn)就是通過引用來調(diào)用對(duì)象, 但有時(shí)你可能想建立一個(gè)對(duì)象的副本,并希望原來的對(duì)象的改變不影響到副本 . 為了這樣的目的,PHP定義了一個(gè)特殊的方法,稱為_clone.E、引用的作用如果程序 比較大,引用同一個(gè)對(duì)象的變量比較多,并且希望用完該對(duì)象后手工清除它,個(gè)人建議用 & 方式,然后用$var=null的方式清除. 其它時(shí)候還是用php5的默認(rèn)方式吧. 另外, php5中對(duì)于大數(shù)組的傳遞,建議用 & 方式, 畢竟節(jié)省內(nèi)存空間使用。F、取消引用當(dāng)你 unset 一個(gè)引用,只是斷開了變量名和變量?jī)?nèi)容之間的綁定。這并不意味著變量?jī)?nèi)容被銷毀了。例如:不會(huì) unset斷開 $b,只是 $a,echo $b還是1G、global 引用當(dāng)用 global $var 聲明一個(gè)變量時(shí)實(shí)際上建立了一個(gè)到全局變量的引用。也就是說和這樣做是相同的:這意味著,例如,unset $var 不會(huì) unset 全局變量。H、$this在一個(gè)對(duì)象的方法中,$this 永遠(yuǎn)是調(diào)用它的對(duì)象的引用。I、php”寫時(shí)拷貝”的原理php中對(duì)于地址的指向(類似指針)功能 不是由用戶自己來實(shí)現(xiàn)的,是由php 核心實(shí)現(xiàn)的,php中引用采用的是“寫時(shí)拷貝”的原理,就是除非發(fā)生寫操作,指向同一個(gè)地址的變量或者對(duì)象是不會(huì)被拷貝的。即:當(dāng)把一個(gè)數(shù)組$A賦值給一個(gè)變量$B:$B=$A,對(duì)PHP內(nèi)核來說,是立即把$A的數(shù)據(jù)結(jié)構(gòu)完整地復(fù)制給$B,還是先在$B上建立一個(gè)對(duì)于$A的引用, 只有當(dāng)把新的元素寫入$B時(shí),這時(shí)$A的結(jié)構(gòu)才被復(fù)制給$B,同時(shí)$B的結(jié)構(gòu)被修改,也就是類似于操作系統(tǒng)內(nèi)核復(fù)制進(jìn)程內(nèi)存頁面時(shí)所采用的“寫時(shí)拷貝”技 術(shù)。通俗的講1 如果有下面的代碼$a=ABC;$b=$a;其實(shí)此時(shí)$a與$b都是指向同一內(nèi)存地址而并不是$a與$b占用不同的內(nèi)存 如果在上面的代碼基礎(chǔ)上再加上如下代碼$a=EFG;由于$a與$b所指向的內(nèi)存的數(shù)據(jù) 要重新寫一次了,此時(shí)php核心會(huì)自動(dòng)判斷自動(dòng)為$b生成一個(gè)$a的數(shù)據(jù)拷貝,重新申請(qǐng)一塊內(nèi)存進(jìn)行存儲(chǔ)4、帶有的函數(shù)表示這個(gè)參數(shù)是可選的,如果你傳值了就可以使用你傳的值,如果沒傳就使用默認(rèn)值可選值和必須值,必須重后到前設(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ù),表示可以傳任意多個(gè)參數(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公交公司跳繩活動(dòng)方案
- 公眾號(hào)情感活動(dòng)方案
- 公關(guān)活動(dòng)燈光秀活動(dòng)方案
- 公司led促銷活動(dòng)方案
- 公司一月份活動(dòng)方案
- 2025至2030年中國(guó)便攜式油中水份分析儀行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國(guó)交流煉鋼電弧爐行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國(guó)不銹鋼六角網(wǎng)行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國(guó)PTA不飽和聚酯樹脂行業(yè)投資前景及策略咨詢報(bào)告
- 紅樓夢(mèng)中的經(jīng)典人物讀后感5篇范文
- 投標(biāo)人聯(lián)系表
- DB13-T2330-2016濱海鹽土鹽地堿蓬種植技術(shù)規(guī)程
- 大學(xué)公務(wù)用車租賃審批單
- 對(duì)稱平衡型CO2壓縮機(jī) 熱力與動(dòng)力校核
- DB51∕T 1349-2011 油菜脫粒機(jī)-行業(yè)標(biāo)準(zhǔn)
- 2022版《語文課程標(biāo)準(zhǔn)》
- 山東工商學(xué)院會(huì)計(jì)學(xué)基礎(chǔ)期末復(fù)習(xí)題及參考答案
- 第7章食品原料的采購與貯存管理ppt課件
- 國(guó)家開放大學(xué)《環(huán)境資源法》形考作業(yè)參考答案
- 湘教版高中美術(shù)選修:美術(shù)鑒賞 第一單元 第二課 圖像與眼睛 (教案)
- 《政治學(xué)原理(二)》課程教學(xué)大綱
評(píng)論
0/150
提交評(píng)論