php簡(jiǎn)明手冊(cè)

# **PHP簡(jiǎn)明手冊(cè)**

## **變量 和 常量**

> 1. 變量和常量是PHP中最基本的數(shù)據(jù)存儲(chǔ)單元,它們可以存儲(chǔ)不同類(lèi)型的數(shù)據(jù);

> 2. PHP的變量或常量的數(shù)據(jù)類(lèi)型由程序的上下問(wèn)決定,跟強(qiáng)類(lèi)型語(yǔ)言(如:C等)由很大不同!

--------------------------------------------------------------------------------

### 什么是變量桂躏?

1. 變量是用于臨時(shí)存儲(chǔ)值的容器惨篱;

2. 這些值可以是數(shù)字栓拜、文本姓建,或者復(fù)雜得多的排列組合缓溅;

3. 變量又是指在程序的運(yùn)行過(guò)程中隨時(shí)可以發(fā)生變化的量蛇损,是程序中數(shù)據(jù)臨時(shí)存放的場(chǎng)所;

4. 簡(jiǎn)而言之:變量是用于跟蹤幾乎所有類(lèi)型信息的簡(jiǎn)單工具坛怪!

5. PHP 中的變量是用一個(gè)美元符號(hào)($)后面跟變量名來(lái)表示淤齐,變量名是區(qū)分大小寫(xiě)的。

- 變量名與PHP中其它的標(biāo)簽一樣遵循相同的規(guī)則袜匿,一個(gè)有效的變量名由字母或下劃線開(kāi)頭更啄,后面跟上任意數(shù)量的字母、數(shù)字居灯、或者下劃線

- 按照正則表達(dá)式來(lái)表述php變量名 `[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*`

- $this 是一個(gè)特殊的變量祭务,它不能被賦值

- php 提供了大量的預(yù)定義變量

- 許多變量依賴(lài)于運(yùn)行的服務(wù)器的版本和設(shè)置内狗,及其它因素

--------------------------------------------------------------------------------

### 什么式常量?

1. 常量是用于一些數(shù)據(jù)計(jì)算中固定的數(shù)值义锥;

2. 常量是一個(gè)簡(jiǎn)單值的標(biāo)識(shí)符(名字)柳沙;

3. 常量申明的類(lèi)型只能是標(biāo)量數(shù)據(jù)(`boolean` `integer` `float` `string`);

4. 在程序執(zhí)行期間一個(gè)常量一旦被定義,就不能再改變或者取消定義(除了所謂的魔術(shù)常量拌倍,它們其實(shí)不是常量)赂鲤;

5. 常量默認(rèn)為大小寫(xiě)敏感。傳統(tǒng)上常量標(biāo)識(shí)符總是大寫(xiě)的贰拿。

- 按照正則表達(dá)式來(lái)表述php常量名 `[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*`

6. 常量的作用于是全局的(這是用它的主要原因)

- 可以在腳本的任何地方什么和訪問(wèn)到常量

7. PHP 中可以用 `define()` 函數(shù)來(lái)定義常量:

- php 5.3 以后可以使用const關(guān)鍵字在類(lèi)定義之外定義常量

- php 中常量不僅可以自定義蛤袒,而且php默認(rèn)提供了大量預(yù)定定義常量

- php 中也提供的一些比較實(shí)用的 魔術(shù)常量(它們其實(shí)不是常量)

--------------------------------------------------------------------------------

### 常量與變量有哪些區(qū)別?

1. 常量前面沒(méi)有美元符號(hào)($)膨更;

2. 常量只能使用 `define()` 函數(shù)定義妙真,而不能通過(guò)賦值語(yǔ)句;

3. 常量可以不用理會(huì)變量的作用域荚守,而在任何地方定義和訪問(wèn)珍德;

4. 常量一旦定義就不能被重新定義或取消定義;

5. 常量的值只能是標(biāo)量(`boolean` `integer` `float` `string`);

--------------------------------------------------------------------------------

### **變量的范圍**

> 1. 變量的范圍也就是它的生效范圍

> 2. 大部分的 php 變量只有一個(gè)單獨(dú)的使用范圍矗漾,包含了 `include` `require` 引入的文件锈候;

> 3. 當(dāng)一個(gè)變量執(zhí)行賦值動(dòng)作后,會(huì)隨著申明區(qū)域位置的差異而有不同的使用范圍敞贡;

> 4. 大致上來(lái)說(shuō):變量會(huì)依據(jù)申明的位置分為局部變量和全局變量?jī)煞N泵琳。

#### **局部變量**

1. 局部變量也稱(chēng)內(nèi)部變量,是在函數(shù)內(nèi)部申明的變量誊役;

- 作用域僅限于函數(shù)內(nèi)部获列,離開(kāi)該函數(shù)后再使用這種變量是非法的

2. 為申明函數(shù)設(shè)置的參數(shù)因?yàn)橹荒茉诒竞瘮?shù)的內(nèi)部使用,所以也是局部變量蛔垢;

- `func_test("參數(shù)1", "參數(shù)2");`

- 函數(shù)的參數(shù)具體數(shù)值從函數(shù)外部獲得(函數(shù)被調(diào)用傳入的值)击孩,作用域僅限于函數(shù)內(nèi)部

- 直接在函數(shù)中申明的變量只能在內(nèi)部被賦值,作用域僅限于函數(shù)內(nèi)部

3. 每次函數(shù)被調(diào)用時(shí)鹏漆,函數(shù)內(nèi)部的變量才被申明巩梢,執(zhí)行完畢后函數(shù)內(nèi)部的變量都被釋放。

#### **全局變量**

1. 全部變量也稱(chēng)外部變量艺玲,是在函數(shù)外部定義的括蝠;

- 作用域:從變量定義出開(kāi)始,到本程序文件的末尾

2. php中的全局變量與其它變成語(yǔ)言不同

- 在php中饭聚,由于函數(shù)可以視為單獨(dú)的程序片段忌警,所以局部變量會(huì)覆蓋全局變量的能見(jiàn)度,因此在函數(shù)中無(wú)法直接調(diào)用全局變量

3. 函數(shù)如何使用全局變量若治?

- 在函數(shù)內(nèi)部利用 `global` 關(guān)鍵字定義指定的全局變量:

```php

- `預(yù)定義變量` 又稱(chēng) `超全局變量` `超全局?jǐn)?shù)組`

> - 超全局?jǐn)?shù)組(變量)慨蓝,在PHP的腳本中,已經(jīng)申明完成的變量端幼,你可以直接就去使用即可礼烈!變量的名字已經(jīng)規(guī)定好的了

> - 對(duì)于全部腳本而言, PHP提供了大量的預(yù)定義變量婆跑。這些變量將所有的 `外部變量(包括來(lái)自 PHP 之外的變量,如表單提交 )` 表示成內(nèi)建環(huán)境變量此熬,并且將錯(cuò)誤信息表示成返回頭。

預(yù)定義變量名? ? ? | 預(yù)定義變量值? ? ? ? ? | 說(shuō)明

----------- | --------------- | --------------------------------------------------------------------------------------------------------------

`$GLOBALS`? | 引用全局作用域中可用的全部變量 | 一個(gè)包含了全部變量的全局組合數(shù)組滑进,變量的名字就是數(shù)組的鍵

`$_SERVER`? | 服務(wù)器和執(zhí)行環(huán)境信息? ? ? | 一個(gè)包含了諸如頭信息(header)犀忱、路徑(path)以及腳本位置等信息的數(shù)組

`$_GET`? ? | HTTP GET 變量? ? | 通過(guò) `URL` 參數(shù)傳遞給當(dāng)前腳本的變量的數(shù)組

`$_POST`? ? | HTTP POST 變量? ? | 當(dāng)HTTP POST請(qǐng)求的 `Content-Type` 是 `application/x-www-form-urlencoded` 或 `multipart/form-data` 時(shí),會(huì)將變量以關(guān)聯(lián)數(shù)組形式傳入當(dāng)前腳本

`$_FILES`? | HTTP 文件上傳變量? ? | 通過(guò) `HTTP POST` 方式上傳到當(dāng)前腳本的項(xiàng)目的數(shù)組

`$_COOKIE`? | HTTP Cookies? ? | 通過(guò) `HTTP Cookies` 方式傳遞給當(dāng)前腳本的變量的數(shù)組

`$_SESSION` | Session 變量? ? ? | 當(dāng)前腳本可用 `SESSION` 變量的數(shù)組

`$_REQUEST` | HTTP Request 變量 | 默認(rèn)情況下包含了 `$_GET` `$_POST` 和 `$_COOKIE`的數(shù)組

`$_ENV`? ? | 環(huán)境變量? ? ? ? ? ? | 通過(guò)環(huán)境方式傳遞給當(dāng)前腳本的變量數(shù)組

--------------------------------------------------------------------------------

### **PHP 中常見(jiàn)的預(yù)定義常量**

1. 在 PHP 中扶关,除了可以自己定義常量阴汇,還預(yù)定義了一系列系統(tǒng)常量,可以在程序中直接使用來(lái)完成一些特殊功能节槐;

2. 不過(guò)很多常量都是由不同的擴(kuò)展庫(kù)定義的搀庶,只有在加載了這些擴(kuò)展庫(kù)時(shí)才會(huì)出現(xiàn):

- 或者動(dòng)態(tài)加載后

- 或者在編譯 PHP 時(shí)已經(jīng)包括進(jìn)去了

- 這些分布在不同擴(kuò)展模塊中的預(yù)定義常量有多種不同的開(kāi)頭,決定了各種不同的類(lèi)型

const name? ? ? ? ? ? ? ? | const value? ? ? ? | const info

------------------------- | ------------------- | ---------------------

`__PHP_OS__`? ? ? ? ? ? ? | `UNIX` OR `WINNT`? | 執(zhí)行PHP解析的操作系統(tǒng)名稱(chēng)

`__PHP_VERSION__`? ? ? ? | 5.2.6? ? ? ? ? ? ? | 當(dāng)前 PHP 服務(wù)器的版本

`__TRUE__`? ? ? ? ? ? ? ? | TURE? ? ? ? ? ? ? ? | 代表布爾值铜异, 真

`__FALSE__`? ? ? ? ? ? ? | FALSE? ? ? ? ? ? ? | 代表布爾值哥倔, 假

`__NULL__`? ? ? ? ? ? ? ? | NULL? ? ? ? ? ? ? ? | 代表空值

`__DIRECTORY_SEPARATOR__` | `\` OR `/`? ? ? ? ? | 根據(jù)操作系統(tǒng)決定目錄的分隔符

`__PATH_SEPARATOR__`? ? ? | `;` OR `:`? ? ? ? ? | 根據(jù)操作系統(tǒng)決定環(huán)境變量的的目錄列表分隔符

`__E_ERROR__`? ? ? ? ? ? | 1? ? ? ? ? ? ? ? ? | 錯(cuò)誤,導(dǎo)致 PHP 腳本運(yùn)行終止

`__E_WARNING__`? ? ? ? ? | 2? ? ? ? ? ? ? ? ? | 警告揍庄,不會(huì)導(dǎo)致 PHP 腳本運(yùn)行終止

`__E_PARSE__`? ? ? ? ? ? | 4? ? ? ? ? ? ? ? ? | 解析錯(cuò)誤咆蒿,有程序解析器報(bào)告

`__E_NOTICE__`? ? ? ? ? ? | 8? ? ? ? ? ? ? ? ? | 非關(guān)鍵的錯(cuò)誤,例如變量未初始化

`__M_PI__`? ? ? ? ? ? ? ? | 3.141 592 653 589 8 | 數(shù)學(xué)中的 π

--------------------------------------------------------------------------------

### **PHP 中的魔術(shù)常量**

1. php 中還有幾個(gè)常量會(huì)根據(jù)它們使用的位置而改變蚂子,這樣的常量在 php 中被稱(chēng)為 `魔術(shù)常量` 沃测;

2. php `魔術(shù)常量` 不區(qū)分大小寫(xiě)

常量名? ? ? ? ? ? | 常量值? ? ? | 說(shuō)明

--------------- | --------- | ---------------------

`__FILE__`? ? ? | 當(dāng)前的文件名? ? | 在哪個(gè)文件中使用,就代表哪個(gè)文件名稱(chēng)

`__LINE__`? ? ? | 當(dāng)前的行數(shù)? ? | 在代碼的哪行使用缆镣,就代表哪行的行號(hào)

`__FUNCTION__`? | 當(dāng)前的函數(shù)名? ? | 在哪個(gè)函數(shù)中時(shí)間芽突,就代表哪個(gè)函數(shù)名

`__CLASS__`? ? | 當(dāng)前的類(lèi)名? ? | 在哪個(gè)類(lèi)中使用,就代表哪個(gè)類(lèi)的類(lèi)名

`__METHOD__`? ? | 類(lèi)下面的當(dāng)前方法名 | 在類(lèi)下面的哪個(gè)方法中使用董瞻,就代表這個(gè)方法名

`__DIR__`? ? ? | 當(dāng)前目錄名? ? | 在哪個(gè)文件下使用寞蚌,就代表哪個(gè)文件名

`__TRAIT__`? ? | 不常用? ? ? | 不常用

`__NAMESPACE__` | 當(dāng)前命名空間名? | 當(dāng)前命名空間的名稱(chēng)

--------------------------------------------------------------------------------

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市钠糊,隨后出現(xiàn)的幾起案子挟秤,更是在濱河造成了極大的恐慌,老刑警劉巖抄伍,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艘刚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡截珍,警方通過(guò)查閱死者的電腦和手機(jī)攀甚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)箩朴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人秋度,你說(shuō)我怎么就攤上這事炸庞。” “怎么了荚斯?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵埠居,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我事期,道長(zhǎng)滥壕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任兽泣,我火速辦了婚禮绎橘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撞叨。我一直安慰自己金踪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布牵敷。 她就那樣靜靜地躺著胡岔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枷餐。 梳的紋絲不亂的頭發(fā)上靶瘸,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音毛肋,去河邊找鬼怨咪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛润匙,可吹牛的內(nèi)容都是我干的诗眨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼孕讳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼匠楚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起厂财,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芋簿,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后璃饱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體与斤,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撩穿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磷支。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖食寡,靈堂內(nèi)的尸體忽然破棺而出齐唆,到底是詐尸還是另有隱情,我是刑警寧澤冻河,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站茉帅,受9級(jí)特大地震影響叨叙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜堪澎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一擂错、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧樱蛤,春花似錦钮呀、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至便脊,卻和暖如春蚂四,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哪痰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工遂赠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晌杰。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓跷睦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親肋演。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抑诸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容