官术网_书友最值得收藏!

2.2 數(shù)據(jù)與運(yùn)算

在PHP開發(fā)過程中,開發(fā)者經(jīng)常需要保存一些有用的信息,并對這些信息進(jìn)行處理。本節(jié)主要介紹PHP中用于存儲(chǔ)數(shù)據(jù)的變量、常量,以及和數(shù)據(jù)相關(guān)的操作方法。

2.2.1 數(shù)據(jù)類型

在PHP程序中支持9種數(shù)據(jù)類型,具體又可細(xì)分如下。

1)4種標(biāo)量類型:boolean(布爾型)、integer(整型)、float/double(浮點(diǎn)型)、string(字符串)。

2)3種復(fù)合類型:array(數(shù)組)、object(對象)、callable(可調(diào)用)。

3)2種特殊類型:resource(資源)、NULL(空類型)。

PHP數(shù)據(jù)類型劃分如圖2-1所示。

圖2-1 PHP數(shù)據(jù)類型

后續(xù)章節(jié)將對復(fù)合類型和特殊類型做詳細(xì)介紹,本節(jié)僅介紹標(biāo)量數(shù)據(jù)類型。

1. 布爾型

布爾型是PHP中最簡單的數(shù)據(jù)類型,只有true和false兩個(gè)值,true表示“真”,false表示“假”,不區(qū)分大小寫。例如:

2. 整型

整型值就是數(shù)學(xué)意義上的整數(shù),可以使用十進(jìn)制、十六進(jìn)制、八進(jìn)制或二進(jìn)制表示。使用十六進(jìn)制表示時(shí)需要在數(shù)字前面加0x,使用八進(jìn)制表示時(shí)需要在數(shù)字前面加0,使用二進(jìn)制表示時(shí)需要在數(shù)字前面加0b。

在對這些不同進(jìn)制的變量值進(jìn)行輸出時(shí),默認(rèn)按照十進(jìn)制輸出。

3. 浮點(diǎn)型

浮點(diǎn)型數(shù)據(jù)可以表示浮點(diǎn)數(shù)。浮點(diǎn)數(shù)是小數(shù)點(diǎn)位置可以變動(dòng)的數(shù),可以用來表示帶小數(shù)點(diǎn)的數(shù)字。浮點(diǎn)數(shù)通常有兩種表示形式:標(biāo)準(zhǔn)形式和指數(shù)形式,示例代碼如下。

以上均為合法的浮點(diǎn)數(shù),浮點(diǎn)數(shù)的精度和系統(tǒng)有關(guān)。由于內(nèi)部表達(dá)方式的原因,盡量不要直接對兩個(gè)浮點(diǎn)數(shù)比較大小。

4. 字符串

字符串類型是PHP中非常重要的一個(gè)數(shù)據(jù)類型,字符串一般是一個(gè)連續(xù)的字符序列,可以是計(jì)算機(jī)能夠表示的任何字符序列。PHP中字符串需要使用單引號(hào)或者雙引號(hào)括起來,示例如下。

運(yùn)行結(jié)果為:

由輸出結(jié)果可以看出,把變量放在雙引號(hào)中輸出時(shí),結(jié)果為變量的值;把變量放在單引號(hào)中輸出時(shí),結(jié)果為變量字符串本身,即雙引號(hào)具有解析變量的作用。需要注意的是,在輸出轉(zhuǎn)義字符時(shí),單引號(hào)除了能對“’”和“\”進(jìn)行轉(zhuǎn)義外,其他內(nèi)容都將原樣輸出。雙引號(hào)則可以對雙引號(hào)、反斜杠、制表符、美元符號(hào)等特殊符號(hào)進(jìn)行轉(zhuǎn)義輸出。

2.2.2 標(biāo)識(shí)符與關(guān)鍵字

在實(shí)際開發(fā)過程中,經(jīng)常需要自定義一些符號(hào)來代表一些名稱,如變量名、函數(shù)名、數(shù)組名、類名等,這些符號(hào)稱為標(biāo)識(shí)符。PHP中標(biāo)識(shí)符的定義需要遵循以下規(guī)則。

1)標(biāo)識(shí)符只能由字母、數(shù)字、下劃線組成,且不能以數(shù)字開頭。

2)標(biāo)識(shí)符用作變量、常量或數(shù)組的名稱時(shí),區(qū)分大小寫。

3)用作函數(shù)名、類名時(shí)不區(qū)分大小寫。

關(guān)鍵字是指PHP中一些帶有特殊含義的名稱,它們是語言結(jié)構(gòu)的一部分。關(guān)鍵字不可以作為常量名、類名或方法名;關(guān)鍵字可以作為變量名使用,但為了避免引起歧義,不推薦使用關(guān)鍵字作為變量名。

從PHP7.0開始,這些關(guān)鍵字中除了class不能被用作常量名之外,其他允許被用作類、接口,以及trait的常量、屬性和方法名稱。PHP7中關(guān)鍵字如表2-1所示。

表2-1 PHP關(guān)鍵字

(續(xù))

2.2.3 常量

PHP使用常量來表示在程序執(zhí)行過程中始終保持不變的數(shù)據(jù)。一個(gè)常量一旦被定義,就不能再改變或者取消定義。常量一般采用全大寫形式表示,如果常量名稱由多個(gè)單詞構(gòu)成,采用下劃線對單詞進(jìn)行分隔。PHP常量分為預(yù)定義常量和自定義常量兩類。

1. 預(yù)定義常量

PHP對于一些在開發(fā)過程中經(jīng)常會(huì)用到的通用信息進(jìn)行預(yù)定義,稱之為預(yù)定義常量,開發(fā)者可以直接使用這些預(yù)定義常量。常用的預(yù)定義常量如表2-2所示。

表2-2 PHP常用的預(yù)定義常量

可以通過echo語句直接輸出預(yù)定義常量的值,下面通過例子來演示echo語句輸出預(yù)定義常量。

例2-1】輸出預(yù)定義常量。

運(yùn)行結(jié)果為:

上述代碼中的“.”為PHP的字符串連接符,“<br>”為換行標(biāo)記。

2. 自定義常量

除了預(yù)定義常量之外,PHP還提供了define函數(shù)和const關(guān)鍵字來定義常量。

(1)define函數(shù)

define函數(shù)的語法格式如下。

其中,mixed為PHP數(shù)據(jù)類型中的一種偽類型,表示該參數(shù)可以接受多種不同類型的數(shù)據(jù)。該函數(shù)的參數(shù)說明如表2-3所示。

表2-3 define()函數(shù)的參數(shù)說明

例2-2】利用define定義常量。

(2)const關(guān)鍵字

const關(guān)鍵字一般用于在類內(nèi)部定義常量,自PHP5.3.0起,const關(guān)鍵字也支持在類外部定義常量。定義格式如下。

其中,NAME為常量名,VALUE為常量值。當(dāng)常量值為標(biāo)量類型時(shí),可以通過echo輸出常量值,代碼如下。

2.2.4 變量

PHP用變量保存在程序執(zhí)行過程中可能發(fā)生變化的數(shù)據(jù)。為了便于區(qū)分每個(gè)變量,開發(fā)者可以給每個(gè)變量起一個(gè)簡潔明了、容易記住的名字,也就是“變量名”。變量名指向計(jì)算機(jī)內(nèi)存中的某個(gè)地址,真正的數(shù)據(jù)存儲(chǔ)在內(nèi)存中。這和日常生活中取快遞的過程相似。

在日常生活中,當(dāng)快遞被送到快遞超市后,快遞超市會(huì)給顧客發(fā)送一個(gè)“提貨碼”,然后顧客可以通過出示“提貨碼”給快遞超市的服務(wù)人員,從而拿到自己的快遞。在這個(gè)過程中,“快遞超市”相當(dāng)于“內(nèi)存”,顧客在網(wǎng)上購買的物品相當(dāng)于存在“內(nèi)存”中的“數(shù)據(jù)”,“提貨碼”相當(dāng)于“變量名”,顧客不需要知道自己的“物品”存在快遞超市的哪個(gè)角落,只要通過“提貨碼”就可以找到自己的“物品”。

P HP通過“$”符號(hào)和一個(gè)標(biāo)識(shí)符表示變量,變量名由數(shù)字、字母、下劃線組成,且不能以數(shù)字開頭。此外,PHP變量名一般采用小寫字母,且區(qū)分大小寫。例如,$name、$book都是合法的變量名稱。

PHP提供兩種給變量賦值的方式:傳值賦值和引用賦值。

1. 傳值賦值

變量默認(rèn)采用傳值賦值方式,即將一個(gè)表達(dá)式賦給一個(gè)變量時(shí),實(shí)際是將表達(dá)式的值賦給變量。

例2-3】傳值賦值。

在上述例子中,把$city1賦給$city2后,雖然兩者的值相同,但是它們的值保存在不同的內(nèi)存空間中。因此,對$city1進(jìn)行重新賦值后,$city2的值并不受影響,仍然輸出“Bei-jing”。變量在內(nèi)存中的存儲(chǔ)變化如圖2-2所示。

此外,PHP還支持可變變量,即把一個(gè)變量的值作為另一個(gè)變量的名稱。

圖2-2 傳值賦值

例2-4】可變變量。

例2-4

2. 引用賦值

除了傳值賦值之外,PHP還提供了另一種給變量賦值的方式:引用賦值。通過引用賦值,可以使兩個(gè)變量指向同一個(gè)內(nèi)存空間,改變其中一個(gè)變量的值,另一個(gè)變量的值也隨之改變。這就好像一個(gè)班級(jí)里班長和副班長都擁有班級(jí)的鑰匙,他們兩人中任何一人都可以通過鑰匙打開教室存取班級(jí)里的物品。采用引用賦值時(shí),需要在將要賦值的變量前加一個(gè)“&”實(shí)現(xiàn)。

例2-5】引用賦值。

例2-5

通過前兩行代碼,$city1和$city2指向了同一個(gè)值,$city1改變后,$city2也隨之改變。引用賦值相當(dāng)于給變量起了一個(gè)別名。$city1和$city2在內(nèi)存中的指向變化如圖2-3所示。

雖然PHP中不需要對變量進(jìn)行初始化,但對變量進(jìn)行初始化是一個(gè)非常好的編程習(xí)慣。未初始化的變量會(huì)具有其類型的默認(rèn)值——布爾類型的變量默認(rèn)值是false,整型和浮點(diǎn)型變量的默認(rèn)值是零,字符串型變量的默認(rèn)值是空字符串,數(shù)組變量的默認(rèn)值是空數(shù)組。

圖2-3 引用賦值

PHP還提供了大量預(yù)定義變量供開發(fā)者直接使用,例如,$GLOBALS、$_GET、$P_OST等。這些預(yù)定義變量將在數(shù)組章節(jié)中詳細(xì)介紹,此處不再贅述。

2.2.5 運(yùn)算符

PHP運(yùn)算符提供對操作數(shù)的運(yùn)算方式,它可以對一個(gè)及多個(gè)操作數(shù)進(jìn)行運(yùn)算,根據(jù)操作數(shù)的個(gè)數(shù)可分為一元運(yùn)算符、二元運(yùn)算符和三元運(yùn)算符。一元運(yùn)算符只接收一個(gè)操作數(shù),二元運(yùn)算符可以接收兩個(gè)操作數(shù),以此類推。PHP運(yùn)算符主要包括:字符串運(yùn)算符、算術(shù)運(yùn)算符、賦值運(yùn)算符、遞增/遞減運(yùn)算符、比較運(yùn)算符、條件運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符等,本節(jié)將對PHP常用的運(yùn)算符進(jìn)行介紹。

1. 字符串運(yùn)算符

字符串運(yùn)算符“.”可以連接兩個(gè)字符串,并返回連接后的字符串。

例2-6】連接字符串。

2. 算術(shù)運(yùn)算符

算術(shù)運(yùn)算符主要用于處理加、減、乘、除等數(shù)學(xué)運(yùn)算,常用的算術(shù)運(yùn)算符如表2-4所示。

表2-4 算術(shù)運(yùn)算符

除法運(yùn)算符的運(yùn)算結(jié)果一般為浮點(diǎn)數(shù)。只有兩個(gè)操作數(shù)都是整數(shù)且正好能整除時(shí),它才返回整數(shù)。取模運(yùn)算符的操作數(shù)在運(yùn)算之前都會(huì)自動(dòng)轉(zhuǎn)換成整數(shù)。取模運(yùn)算符的運(yùn)算結(jié)果和被除數(shù)的符號(hào)相同,即$a %$b的結(jié)果和$a的符號(hào)相同。

3. 賦值運(yùn)算符

賦值運(yùn)算符“=”表示把右側(cè)表達(dá)式的值賦給左側(cè)的操作數(shù)。PHP中常用的賦值運(yùn)算符如表2-5所示。

表2-5 賦值運(yùn)算符

(續(xù))

4. 遞增/遞減運(yùn)算符

自增運(yùn)算符“++”和自減運(yùn)算符“-”均為一元運(yùn)算符,只接收一個(gè)操作數(shù),根據(jù)操作數(shù)和運(yùn)算符的相對位置不同,分為前遞增、后遞增、前遞減、后遞減四種情況,具體應(yīng)用如表2-6所示。

表2-6 遞增/遞減運(yùn)算符

例2-7中舉例說明了遞增運(yùn)算符的用法。

例2-7】遞增運(yùn)算。

由輸出結(jié)果可以得出:無論操作數(shù)在運(yùn)算符的前面還是后面,通過自增運(yùn)算后,操作數(shù)本身加1。區(qū)別主要體現(xiàn)在給其他變量賦值時(shí),前遞增運(yùn)算會(huì)把操作數(shù)加1后的值賦給變量$res1;后遞增會(huì)先把操作數(shù)的值賦給變量$res2,然后操作數(shù)加1。遞減運(yùn)算符和遞增運(yùn)算符的用法相同,不再舉例說明。

5. 比較運(yùn)算符

比較運(yùn)算符用于對兩個(gè)操作數(shù)進(jìn)行比較,比較的結(jié)果為真時(shí)返回true,結(jié)果為假時(shí)返回false。PHP中的比較運(yùn)算符如表2-7所示。

表2-7 比較運(yùn)算符

(續(xù))

需要特別說明的是,P HP是弱類型語言,不需要特意聲明變量的類型。如果進(jìn)行比較的兩個(gè)操作數(shù)類型不同時(shí),除了“===”和“!==”之外,其他操作符會(huì)進(jìn)行類型轉(zhuǎn)換之后再比較。全等運(yùn)算符“===”只有當(dāng)$a和$b的類型和值均相等時(shí),結(jié)果才為true。例如,“'12'===12”的值為false,因?yàn)閮烧哳愋筒煌?/p>

PHP7提供了一個(gè)新的比較運(yùn)算符——太空船運(yùn)算符,太空船運(yùn)算符根據(jù)兩個(gè)操作數(shù)的比較結(jié)果返回不同的值:第1個(gè)操作數(shù)小于、等于、大于第2個(gè)操作數(shù)時(shí),分別返回-1、0、1,代碼如下:

6. 條件運(yùn)算符

條件運(yùn)算符是三元運(yùn)算符,需要三個(gè)操作數(shù),語法格式如下。

條件運(yùn)算符根據(jù)條件表達(dá)式的真假返回不同的值,當(dāng)條件表達(dá)式為真時(shí),返回表達(dá)式1的值,當(dāng)條件表達(dá)式為假時(shí),返回表達(dá)式2的值。

例2-8】輸出兩者中比較大的值。

PHP7新增了一個(gè)NULL合并運(yùn)算符“??”,它用于判斷給定的操作數(shù)是否為null,如果左邊操作數(shù)不為null,則返回左邊操作數(shù);如果左邊操作數(shù)為null,則返回右邊的操作數(shù)。

例2-9】NULL合并運(yùn)算符。

上述代碼先判斷$num是否為null,由于$num不為null,直接返回$num的值。

7. 邏輯運(yùn)算符

邏輯運(yùn)算符可以把兩個(gè)或多個(gè)表達(dá)式連接成一個(gè)表達(dá)式或使表達(dá)式的邏輯反轉(zhuǎn)。PHP邏輯運(yùn)算符如表2-8所示。

表2-8 邏輯運(yùn)算符

需要注意的是:表2-8中分別包含兩個(gè)邏輯與、邏輯或,但是它們的優(yōu)先級(jí)不同。

8. 位運(yùn)算符

位運(yùn)算符主要用于對二進(jìn)制數(shù)進(jìn)行運(yùn)算,運(yùn)算時(shí)需要把兩個(gè)數(shù)字先轉(zhuǎn)成二進(jìn)制,并從低位到高位對齊后再進(jìn)行運(yùn)算。位運(yùn)算符如表2-9所示。

表2-9 位運(yùn)算符

左移時(shí)右側(cè)用零補(bǔ)齊,右移時(shí)左側(cè)用符號(hào)位填充。

9. 錯(cuò)誤控制運(yùn)算符

PHP提供了一個(gè)錯(cuò)誤控制運(yùn)算符“@”,當(dāng)將它放在PHP表達(dá)式之前,該表達(dá)式可能產(chǎn)生的任何錯(cuò)誤信息都被忽略掉。需要注意的是:這里的表達(dá)式指的是擁有“值”的表達(dá)式,不能把它放在函數(shù)或類的定義前面。

10. 運(yùn)算符的優(yōu)先級(jí)

運(yùn)算符優(yōu)先級(jí)是指多個(gè)運(yùn)算符同時(shí)進(jìn)行運(yùn)算時(shí),優(yōu)先運(yùn)算哪個(gè)運(yùn)算符。例如,1+2?3表達(dá)式的結(jié)果是7,而不是9,因?yàn)槌朔ū燃臃ǖ膬?yōu)先級(jí)高。

如果運(yùn)算符的優(yōu)先級(jí)相同,則需要按照結(jié)合方向來決定運(yùn)算順序。例如,乘法運(yùn)算符是向左結(jié)合,所以2?3?4等價(jià)于(2?3)?4;賦值運(yùn)算符“=”是向右結(jié)合,所以$a=$b=$c等價(jià)于$a=($b=$c),即先把$c的值賦給$b,再把$b的值賦給$a。

建議通過增加小括號(hào)來明確顯示運(yùn)算符的優(yōu)先級(jí),從而增強(qiáng)程序的可讀性。PHP各種運(yùn)算符的優(yōu)先級(jí)如表2-10所示。

表2-10 運(yùn)算符優(yōu)先級(jí)

2.2.6 類型轉(zhuǎn)換

不同類型的數(shù)據(jù)參與運(yùn)算時(shí),有時(shí)會(huì)用到類型轉(zhuǎn)換。PHP類型轉(zhuǎn)換可以分為自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換兩種。

1. 自動(dòng)類型轉(zhuǎn)換

PHP是一門弱類型語言,在使用變量時(shí),變量的類型取決于給它賦值的類型。不同類型的數(shù)據(jù)在運(yùn)算過程中,會(huì)發(fā)生自動(dòng)類型轉(zhuǎn)換。

(1)其他類型轉(zhuǎn)布爾型

其他類型轉(zhuǎn)換為布爾值時(shí),會(huì)被看作false的數(shù)據(jù)如表2-11所示,除表中數(shù)據(jù)外,其他數(shù)據(jù)會(huì)作為true參與運(yùn)算。

表2-11 其他類型轉(zhuǎn)換布爾型

其中,浮點(diǎn)型0.0后面無論添加多少個(gè)0,值均為false,只要有一個(gè)非0數(shù)值即為true;字符串'0'和空字符串''的值為false,但包含一個(gè)空格的字符串' '的布爾值為true。

(2)其他類型轉(zhuǎn)數(shù)值型

布爾型和整型、浮點(diǎn)型數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算時(shí),true會(huì)自動(dòng)作為整型1或浮點(diǎn)型1參與運(yùn)算,false會(huì)自動(dòng)作為整型0或浮點(diǎn)型0參與運(yùn)算。

浮點(diǎn)型和整型數(shù)據(jù)一起進(jìn)行運(yùn)算時(shí),整型數(shù)據(jù)會(huì)被當(dāng)作浮點(diǎn)型進(jìn)行運(yùn)算。

在參與數(shù)值運(yùn)算時(shí),以非數(shù)字開頭的字符串會(huì)被當(dāng)作數(shù)字0;以整型或浮點(diǎn)型字符開頭的字符串會(huì)轉(zhuǎn)成對應(yīng)的整型或浮點(diǎn)型數(shù)據(jù),示例代碼如下。

運(yùn)行結(jié)果如圖2-4所示。

圖2-4 字符串轉(zhuǎn)數(shù)值

在使用字符串參與數(shù)學(xué)運(yùn)算時(shí),PHP7.1及以上版本會(huì)給出Notice及Warning警告,提示數(shù)據(jù)格式不正確,但仍然能夠給出運(yùn)算結(jié)果。

(3)其他類型轉(zhuǎn)字符串型

在參與字符串運(yùn)算時(shí),數(shù)值型數(shù)據(jù)會(huì)直接被看作字符串;布爾值true會(huì)被看作1,布爾值false會(huì)被看作空字符串,代碼如下。

運(yùn)行結(jié)果為:

在自動(dòng)發(fā)生類型轉(zhuǎn)換時(shí),并不會(huì)改變操作數(shù)本身的類型,改變的僅僅是這些操作數(shù)如何被求值以及表達(dá)式本身的類型。

2. 強(qiáng)制類型轉(zhuǎn)換

強(qiáng)制類型轉(zhuǎn)換可以把一種數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)為另一種數(shù)據(jù)類型,PHP通過三種方式實(shí)現(xiàn)強(qiáng)制類型轉(zhuǎn)換。

(1)使用轉(zhuǎn)換操作符

PHP通過在變量前添加轉(zhuǎn)換操作符實(shí)現(xiàn)強(qiáng)制類型轉(zhuǎn)換,轉(zhuǎn)換操作符一般由小括號(hào)和類型兩部分組成,常用的轉(zhuǎn)換操作符如表2-12所示。

表2-12 轉(zhuǎn)換操作符

在強(qiáng)制轉(zhuǎn)為整型時(shí),布爾型true會(huì)被看作整數(shù)1,布爾型false會(huì)被看作整數(shù)0;以數(shù)字開頭的字符串會(huì)截取整數(shù)字符部分,否則為0;浮點(diǎn)型數(shù)據(jù)只保留整數(shù)部分。

在強(qiáng)制轉(zhuǎn)為浮點(diǎn)型時(shí),布爾型true會(huì)被看作浮點(diǎn)數(shù)1,布爾型false會(huì)被看作浮點(diǎn)數(shù)0;以數(shù)字開頭的字符串會(huì)截取數(shù)字部分,否則為0。

(2)intval()、floatval()、doubleval()、boolval()、strval()函數(shù)

除了轉(zhuǎn)換操作符之外,PHP還提供了一系列函數(shù)實(shí)現(xiàn)變量的強(qiáng)制轉(zhuǎn)換。

intval()函數(shù)用于獲取變量的整數(shù)值,floatval()和doubleval()函數(shù)用于獲取變量的浮點(diǎn)值、boolval()函數(shù)用于獲取變量的布爾值,strval()函數(shù)用于獲取變量的字符串值。這些函數(shù)和轉(zhuǎn)換操作符一樣,并不會(huì)改變操作數(shù)本身的類型。下面代碼以intval()函數(shù)為例,說明強(qiáng)制轉(zhuǎn)換函數(shù)的用法。

(3)settype()函數(shù)

settype()函數(shù)用于設(shè)置變量的類型,與intval()等函數(shù)不同的是,它會(huì)改變變量本身的類型。下面代碼通過settype()函數(shù)把變量$str的類型轉(zhuǎn)成了整型。

2.2.7 表達(dá)式與語句

表達(dá)式是PHP語言的重要元素,任何有值的東西皆可稱之為表達(dá)式,PHP中最基本的表達(dá)式就是常量和變量。例如,$a、12、$a=12、$b=$a=100都是合法的表達(dá)式。

有一些表達(dá)式加上分號(hào)之后即可變成語句,例如,“$a=12;”“$b=$a=5;”都是合法的語句。

主站蜘蛛池模板: 南投市| 武宣县| 嫩江县| 吉安县| 建阳市| 台南县| 察隅县| 绵阳市| 商都县| 玉门市| 香格里拉县| 阳西县| 漳平市| 新密市| 无极县| 武隆县| 沧源| 荥阳市| 玉树县| 淳安县| 桐梓县| 桓仁| 霍山县| 兰考县| 娄底市| 武宣县| 唐河县| 灵宝市| 九寨沟县| 宝应县| 二连浩特市| 定日县| 鹤庆县| 蕲春县| 沛县| 荣成市| 云梦县| 永新县| 龙江县| 江阴市| 吉林省|