国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 php手冊 php學習日志(2)-php變量

php學習日志(2)-php變量

Aug 18, 2016 am 08:57 AM

??????? 變量是用于存儲數(shù)據(jù)的容器,與代數(shù)相似,可以給變量賦予某個確定的值(例如:$x=3)或者是賦予其它的變量(例如:$x=$y+$z)。變量的定義主要有以下規(guī)則:

  • 變量以$開始,后面跟著變量的名稱;
  • 變量名稱有數(shù)字、字母、下劃線構成,且第一個字符不能為數(shù)字;
  • 變量名稱不能包含空格;
  • 變量名稱區(qū)分大小寫。

??? php中的變量在第一次賦予它值的時候被創(chuàng)建,如果變量未賦值,則在輸出時會出現(xiàn)錯誤,如下面所示:

<span style="color: #000000">php
</span><span style="color: #800080">$x</span><span style="color: #000000">;
</span><span style="color: #0000ff">echo</span> <span style="color: #800080">$x</span><span style="color: #000000">;
</span>?>

此時瀏覽器會出現(xiàn)錯誤提示:

1

這個部分與Python有所區(qū)別,Python中如果變量沒有被賦值,編譯器會直接提示錯誤,我們需要注意一下。

python變量定義圖、Python變量未賦值發(fā)生錯誤???????????????

????? php是一門弱類型語言,在定義變量時,我們不需要定義變量的類型,php會根據(jù)變量的值,自動的將變量轉換成正確的數(shù)據(jù)類型。如下例所示:

<span style="color: #000000">php
</span><span style="color: #800080">$x</span>=3<span style="color: #000000">;
</span><span style="color: #800080">$y</span>=3.0<span style="color: #000000">;
</span><span style="color: #800080">$str</span>="hello"<span style="color: #000000">;
</span><span style="color: #800080">$bool</span>=<span style="color: #0000ff">false</span><span style="color: #000000">;
</span><span style="color: #800080">$arr</span>=<span style="color: #0000ff">array</span>(1,2,3<span style="color: #000000">);
</span><span style="color: #800080">$_null</span>=<span style="color: #0000ff">NULL</span><span style="color: #000000">;

</span><span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$x</span>),"<br>";     <span style="color: #008000">//</span><span style="color: #008000">輸出類型為integ</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$y</span>),"<br>";     <span style="color: #008000">//</span><span style="color: #008000">輸出類型為double</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$str</span>),"<br>";   <span style="color: #008000">//</span><span style="color: #008000">輸出類型為string</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$bool</span>),"<br>";  <span style="color: #008000">//</span><span style="color: #008000">輸出類型為boolean</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$arr</span>),"<br>";   <span style="color: #008000">//</span><span style="color: #008000">輸出類型為array</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$_null</span>),"<br>";  <span style="color: #008000">//</span><span style="color: #008000">輸出類型為NULL</span>
?>

結果為:

php類型判斷

????? 接下來我們將對php的四種變量作用域進行討論,變量作用域定義了變量的作用范圍,php主要有以下四種變量作用域:

  • local
  • global
  • static
  • parameter(參數(shù))

(1)局部與全局作用域

????? 在函數(shù)外定義的變量,擁有全局作用域,除了函數(shù)外,全局作用域可以被腳本中的任何部分訪問,要在一個函數(shù)中訪問全局變量,需要在函數(shù)中變量之前加上

global 關鍵字。

實例:

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000">局部作用域與全局作用域</span><span style="color: #008000">*/</span>
<span style="color: #800080">$a</span>=5<span style="color: #000000">;

</span><span style="color: #0000ff">function</span><span style="color: #000000"> test()
{
    </span><span style="color: #800080">$b</span>=10<span style="color: #000000">;
    </span><span style="color: #0000ff">echo</span> "測試函數(shù)內(nèi)變量<br>"<span style="color: #000000">;
    </span><span style="color: #0000ff">echo</span> "變量a的值為:<span style="color: #800080">$a</span> <br>";  <span style="color: #008000">//</span><span style="color: #008000">變量$a未在函數(shù)內(nèi)定義,在引用時出現(xiàn)錯誤.</span>
    <span style="color: #0000ff">echo</span> "變量b的值為:<span style="color: #800080">$b</span><br>"<span style="color: #000000">;
}

test();

</span><span style="color: #0000ff">echo</span> "測試函數(shù)外變量<br>"<span style="color: #000000">;
</span><span style="color: #0000ff">echo</span> "變量a的值為:<span style="color: #800080">$a</span> <br>"<span style="color: #000000">;
</span><span style="color: #0000ff">echo</span> "變量b的值為:<span style="color: #800080">$b</span><br>";    <span style="color: #008000">//</span><span style="color: #008000">變量$a未在函數(shù)內(nèi)定義,在引用時出現(xiàn)警告.</span>
?>

結果如下:

global$local

圖、局部變量與全局變量

可見,在局部函數(shù)里面,是不能直接訪問全局變量的,如果要訪問全局變量,須在函數(shù)里面的變量前加上global關鍵字。同樣,在函數(shù)外也不能直接訪問函數(shù)里面的變量,函數(shù)執(zhí)行結束內(nèi)存會自動回收,故我們無法訪問到。

(2)global關鍵字

????? global 關鍵字用于函數(shù)內(nèi)訪問全局變量,在函數(shù)內(nèi)調(diào)用函數(shù)外定義的全局變量,需要用global關鍵字。值得一提的是,這和參數(shù)的調(diào)用不同,參數(shù)的調(diào)用并不會改變該變量在內(nèi)存中的值,而global調(diào)用是直接調(diào)用內(nèi)存中的該值,直接對它進行操作,故會改變其值。

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000">在函數(shù)內(nèi)調(diào)用函數(shù)外的變量,需要用到global關鍵字</span><span style="color: #008000">*/</span>
<span style="color: #008000">/*重要:</span><span style="color: #008000">這種調(diào)用會改變變量在內(nèi)存中的值</span><span style="color: #008000">*/</span>
<span style="color: #800080">$x</span>=5<span style="color: #000000">;
</span><span style="color: #800080">$y</span>=6<span style="color: #000000">;
</span><span style="color: #008000">/*</span><span style="color: #008000">
 * 以下這種方式是不被允許的,只有在函數(shù)內(nèi)調(diào)用函數(shù)外的變量才能使用global
golbal $z=7;
</span><span style="color: #008000">*/</span>
<span style="color: #0000ff">function</span><span style="color: #000000"> myTest()
{
    </span><span style="color: #0000ff">global</span> <span style="color: #800080">$x</span>,<span style="color: #800080">$y</span><span style="color: #000000">;
    </span><span style="color: #800080">$y</span>=<span style="color: #800080">$x</span>+<span style="color: #800080">$y</span><span style="color: #000000">;
}

myTest();
</span><span style="color: #0000ff">echo</span> "y=<span style="color: #800080">$y</span>"  <span style="color: #008000">//</span><span style="color: #008000">輸出y=11</span>
?>

?

*注意:超級全局變量 $GLOBALS[index]

????? php將所有全局變量存儲在一個名為:$GLOBALS[index]的數(shù)組中,這個數(shù)組可以在函數(shù)內(nèi)訪問,也可以用來直接更新全局變量(只能在函數(shù)內(nèi)進行)。

實例:

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000"> GLOBALS[index]的用法講解 </span><span style="color: #008000">*/</span>
<span style="color: #800080">$x</span>=5<span style="color: #000000">;
</span><span style="color: #800080">$y</span>=6<span style="color: #000000">;

</span><span style="color: #0000ff">function</span><span style="color: #000000"> myTest_1()
{
    </span><span style="color: #800080">$GLOBALS</span>['y']=<span style="color: #800080">$GLOBALS</span>['x']+<span style="color: #800080">$GLOBALS</span>['y'<span style="color: #000000">];
    </span><span style="color: #008000">/*</span><span style="color: #008000">index不用寫$字符,否則報錯:$x,$y undefined
    $GLOBALS['$y']=$GLOBALS['$x']+$GLOBALS['$y'];
    </span><span style="color: #008000">*/</span><span style="color: #000000">
}

</span><span style="color: #0000ff">function</span><span style="color: #000000"> myTest_2()
{
    </span><span style="color: #800080">$GLOBALS</span>['x']=15<span style="color: #000000">;
}

</span><span style="color: #0000ff">echo</span> "執(zhí)行myTest_1:<br>"<span style="color: #000000">;
myTest_1();
</span><span style="color: #0000ff">echo</span> "y=<span style="color: #800080">$y</span>","<br>"<span style="color: #000000">;
</span><span style="color: #0000ff">echo</span> "x=<span style="color: #800080">$x</span>","<br>"<span style="color: #000000">;
</span><span style="color: #800080">$GLOBALS</span>['$x']=12;     <span style="color: #008000">//</span><span style="color: #008000">未將GLOBALS[index]放在函數(shù)里面,無效</span>
<span style="color: #0000ff">echo</span> "x=<span style="color: #800080">$x</span>","<br>"<span style="color: #000000">;

</span><span style="color: #0000ff">echo</span> "執(zhí)行myTest_2:<br>"<span style="color: #000000">;
myTest_2();
</span><span style="color: #0000ff">echo</span> "x=<span style="color: #800080">$x</span>","<br>"<span style="color: #000000">;
</span>?>

結果為:

GLOBALS[index] introduce

圖、GLOBALS[index]的用法示例

(3)static關鍵字

????? 在一個函數(shù)執(zhí)行完成之后,它的變量通常都會刪除,有時我們希望函數(shù)中的某個變量保留,這時我們可以在申明變量時使用static關鍵字:

實例:

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000">靜態(tài)變量static的用法</span><span style="color: #008000">*/</span>
<span style="color: #0000ff">function</span><span style="color: #000000"> myTest()
{
    </span><span style="color: #0000ff">static</span> <span style="color: #800080">$x</span>=0,<span style="color: #800080">$y</span>=1<span style="color: #000000">;
    </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$x</span><span style="color: #000000">;
    </span><span style="color: #800080">$x</span>++<span style="color: #000000">;
}

myTest(); </span><span style="color: #008000">//</span><span style="color: #008000">輸出為:0</span>
myTest(); <span style="color: #008000">//</span><span style="color: #008000">輸出為:1</span>
myTest(); <span style="color: #008000">//</span><span style="color: #008000">輸出為:2</span>

<span style="color: #008000">/*</span><span style="color: #008000">函數(shù)里面的靜態(tài)變量不能直接被訪問</span><span style="color: #008000">*/</span>
<span style="color: #0000ff">echo</span> <span style="color: #800080">$y</span>;  <span style="color: #008000">//</span><span style="color: #008000">輸出為:Notice: Undefined variable: y</span>
?>

(4)參數(shù)作用域

????? 參數(shù)(parameter)的作用是將值傳遞給函數(shù)的局部變量。

實例:

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000">參數(shù)(parameter)傳遞</span><span style="color: #008000">*/</span>
<span style="color: #0000ff">function</span> myTest(<span style="color: #800080">$x</span><span style="color: #000000">)
{
    </span><span style="color: #0000ff">echo</span> "傳遞的值為:<span style="color: #800080">$x</span>.<br>"<span style="color: #000000">;
}

myTest(</span>5);  <span style="color: #008000">//</span><span style="color: #008000">結果為:傳遞的值為5.</span>
myTest("string") <span style="color: #008000">//</span><span style="color: #008000">結果為:傳遞的值為string.</span>
?>

?

?

==php新手,有不對的地方希望各位博友提醒,萬分感謝==

Technorati 標簽: php,變量,local,global,static,參數(shù)傳遞,GLOBALS[index]
本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)