新手學堂:PHP伺服器變數設定的方法介紹

來源:互聯網
上載者:User
關鍵字 新手學堂:PHP伺服器變數設定的方法介紹

變數類型變化(juggling)

php不需要(或者說不支援)在聲名變數明確他的變數類型;一個變數的類型是由這個變數被使用的前後關係來決定的,也就是說,如果你給一個變數var賦了 一個字串的值,var就變成了字串變數。如果你再將一個整數賦值給var,他又變成了一個整數型變數。

一個PHP自動轉化變數類型的例子是加法的操作符’+’。如果任何一個運算元都是雙精確度數,那麼所有的運算元被當作雙精確度數求值,並且結果也是雙精確度數。 否則,運算元將被認為是整數,結果也將會是整數。注意這並不影響每個運算元本身的變數類型,唯一的變化就是運算元在計算的過程中被如何處理。

$foo  =  "0";  //  $foo  是一個字串  ,值是“0”(ASCII  48)  $foo++;  //  $foo  是一個字串,值是“1”(ASCII  49)  $foo  +=  1;  //  $foo  現在是一個整數(2)了  $foo  =  $foo  +  1.3;  //  $foo  現在是一個雙精確度數(3.3)了  $foo  =  5  +  "10  Little  Piggies";  //  $foo  是一個整數  (15)  $foo  =  5  +  "10  Small  Pigs";  //  $foo  是一個整數  (15)

如果你覺得上面例子中最後兩個運算式看起來有點奇怪的話,請看 “字串的轉化”部分。

如果你希望強制一個變數被當作某種固定的類型來計算,請看 “類型強制(casting)” 一節。如果你希望轉變一個變數的類型,請看函數“settype()”的說明。

確定一個變數的類型

因為PHP自己決定變數的類型並且一般按照需要轉化他們,一個特定的變數的類型不是在任何時間都非常明顯。PHP包括一些函數可以找出這個變數的類型。這 些函數是gettype(), is_long(), is_double(), is_string(), is_array(), 和 is_object().

類型強制(type casting)

在PHP中類型強制同在C語言中大抵相似:將需要的類型的種類寫在要強制的變數的前面的圓括弧中。

$foo  =  10;  //  $foo  是一個整數  $bar  =  (double)  $foo;  //  $bar  是一個雙精確度數

以下的強制方式是允許的:

(int), (integer) – 強製成整數

(real), (double), (float) – 強製成雙精確度數

(string) – 強製成字串

(array) – 強製成數組

(object) – 強製成對象

注意在圓括弧中允許定位字元(tabs)和空格(spaces) ,因此下面的語句是等價的:

$foo = (int) $bar;

$foo = ( int ) $bar;

字串轉化

當一個字串被當作數字型的值來計算時,他的結果和類型如下面所述的決定。

如果這個字串含有字元’.’,’e’,或者’E’,則被當作雙精確度類型變數來處理,否則當作是整數。

這個字串的值由詞首部分決定。如果這個字串以任何有效數位資料開始,那麼這個數字資料就是這個字串參加運算的值。否則,值為零(zero)。有 效的數字資料是遵循下面的這些標記的,跟隨在一個或多個數字後面(可以包含小數點),跟隨在一個可選的指數後面。指數是由一個或多個數字跟在’e’或 ’E’後面構成的。

$foo  =  1  +  "10.5";  //  $foo  是雙精確度數  (11.5)  $foo  =  1  +  "-1.3e3";  //  $foo  是雙精確度數(-1299)  $foo  =  1  +  "bob-1.3e3";  //  $foo  是整數  (1)  $foo  =  1  +  "bob3";  //  $foo  是整數  (1)  $foo  =  1  +  "10  Small  Pigs";  //  $foo  是整數  (11)$foo  =  1  +  "10  Little  Piggies";  //  $foo  是整數  (11);  //  這個字串包括字元'e'

擷取更多資訊,請參考Unix手冊關於strtod(3)的部分。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.