PHP服務(wù)器變量設(shè)置的方法介紹
變量類型變化(juggling)
PHP不需要(或者說不支持)在聲名變量明確他的變量類型;一個變量的類型是由這個變量被使用的前后關(guān)系來決定的,也就是說,如果你給一個變量var賦了 一個字符串的值,var就變成了字符串變量。如果你再將一個整數(shù)賦值給var,他又變成了一個整數(shù)型變量。
一個PHP自動轉(zhuǎn)化變量類型的例子是加法的操作符’+’。如果任何一個操作數(shù)都是雙精度數(shù),那么所有的操作數(shù)被當(dāng)作雙精度數(shù)求值,并且結(jié)果也是雙精度數(shù)。 否則,操作數(shù)將被認(rèn)為是整數(shù),結(jié)果也將會是整數(shù)。注意這并不影響每個操作數(shù)本身的變量類型,唯一的變化就是操作數(shù)在計算的過程中被如何處理。
$foo = "0"; // $foo 是一個字符串 ,值是“0”(ASCII 48)
$foo++; // $foo 是一個字符串,值是“1”(ASCII 49)
$foo += 1; // $foo 現(xiàn)在是一個整數(shù)(2)了
$foo = $foo + 1.3; // $foo 現(xiàn)在是一個雙精度數(shù)(3.3)了
$foo = 5 + "10 Little Piggies"; // $foo 是一個整數(shù) (15)
$foo = 5 + "10 Small Pigs"; // $foo 是一個整數(shù) (15)
如果你覺得上面例子中最后兩個表達(dá)式看起來有點(diǎn)奇怪的話,請看 “字符串的轉(zhuǎn)化”部分。
如果你希望強(qiáng)制一個變量被當(dāng)作某種固定的類型來計算,請看 “類型強(qiáng)制(casting)” 一節(jié)。如果你希望轉(zhuǎn)變一個變量的類型,請看函數(shù)“settype()”的說明。
確定一個變量的類型
因?yàn)镻HP自己決定變量的類型并且一般按照需要轉(zhuǎn)化他們,一個特定的變量的類型不是在任何時間都非常明顯。PHP包括一些函數(shù)可以找出這個變量的類型。這 些函數(shù)是gettype(), is_long(), is_double(), is_string(), is_array(), 和 is_object().
類型強(qiáng)制(type casting)
在PHP中類型強(qiáng)制同在C語言中大抵相似:將需要的類型的種類寫在要強(qiáng)制的變量的前面的圓括號中。
$foo = 10; // $foo 是一個整數(shù)
$bar = (double) $foo; // $bar 是一個雙精度數(shù)
以下的強(qiáng)制方式是允許的:
(int), (integer) – 強(qiáng)制成整數(shù)
(real), (double), (float) – 強(qiáng)制成雙精度數(shù)
(string) – 強(qiáng)制成字符串
(array) – 強(qiáng)制成數(shù)組
(object) – 強(qiáng)制成對象
注意在圓括號中允許制表符(tabs)和空格(spaces) ,因此下面的語句是等價的:
$foo = (int) $bar;
$foo = ( int ) $bar;
字符串轉(zhuǎn)化
當(dāng)一個字符串被當(dāng)作數(shù)字型的值來計算時,他的結(jié)果和類型如下面所述的決定。
如果這個字符串含有字符’.’,’e’,或者’E’,則被當(dāng)作雙精度類型變量來處理,否則當(dāng)作是整數(shù)。
這個字符串的值由詞首部分決定。如果這個字符串以任何有效的數(shù)字的數(shù)據(jù)開始,那么這個數(shù)字?jǐn)?shù)據(jù)就是這個字符串參加運(yùn)算的值。否則,值為零(zero)。有 效的數(shù)字?jǐn)?shù)據(jù)是遵循下面的這些標(biāo)記的,跟隨在一個或多個數(shù)字后面(可以包含小數(shù)點(diǎn)),跟隨在一個可選的指數(shù)后面。指數(shù)是由一個或多個數(shù)字跟在’e’或 ’E’后面構(gòu)成的。
$foo = 1 + "10.5"; // $foo 是雙精度數(shù) (11.5)
$foo = 1 + "-1.3e3"; // $foo 是雙精度數(shù)(-1299)
$foo = 1 + "bob-1.3e3"; // $foo 是整數(shù) (1)
$foo = 1 + "bob3"; // $foo 是整數(shù) (1)
$foo = 1 + "10 Small Pigs"; // $foo 是整數(shù) (11)
$foo = 1 + "10 Little Piggies"; // $foo 是整數(shù) (11);
// 這個字符串包括字符'e'
獲取更多信息,請參考Unix手冊關(guān)于strtod(3)的部分。
關(guān)鍵詞:PHP,服務(wù)器
閱讀本文后您有什么感想? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0