位置:首頁 > 腳本語言 > PHP教學 > PHP變量類型

PHP變量類型

將信息存儲在一個PHP程序中的主要方法是使用變量。

這裡是了解PHP中的變量重要的幾個知識。

  • 在PHP中所有的變量都標注有一個前導美元符號 ($).

  • 一個變量的值是其最近分配的值.

  • 變量賦以=運算符,左側的為變量名稱,在右側則是要計算的表達式.

  • 變量可以,但也可以不需要賦值前必須聲明,也就是說,可聲明可不聲明.

  • PHP中的變量冇有固有類型 - 一個變量不用事先知道它是會被用來存儲​​一個數字還是字符串.

  • 他們被使用之前變量有分配默認值.

  • 在必要的時候,PHP能非常完好地自動將類型轉換從一種類型到另一種類型.

  • PHP變量與Perl類似.

PHP總共有八個數據類型,可用它來構建變量:

  • 整型: 全是數字,冇有小數點,如 4195.

  • 浮點型: 是浮點數,如 3.14159 或 49.1.

  • 布爾型: 隻有兩個可能的值:true或false。

  • NULL: 是一種特殊類型,隻具有一個值: NULL.

  • 字符串: 是字符的序列,如“PHP支持的字符串操作."

  • 數組: 命名和索引的其他值的集合。

  • 對象: 是程序員定義的類,它可以打包兩個其他種類的值和函數所特有的類的實例。

  • 資源: 是外部引用的資源保持到PHP(如數據庫連接)的特殊變量。

前麵5個是“簡單類型”, 而接下來的兩個(數組和對象)是複合 - 複合類型可以打包任意類型的其他任意值,而簡單類型是不能的。

我們將在本章節隻解釋比喻的數據類型。數組和對象將另外章節在了解和學習。

整型:

他們全是數字,冇有小數點,比如4195。他們是最簡單的類型。它們對應於簡單的整數,正數和負數。整數可以分配給變量,也可以在表達式中使用,就像這樣:

$int_var = 12345;
$another_int = -12345 + 12345;

整數可以是十進製(基數為10),八進製(基數為8)和十六進製(基數為16)格式。十進製格式是默認的,八進製整數以0開頭指定,十六進製數以0x。

對於最常見的平台上,最大整數為(2 **31-1)(或2,147,483,647),最小(最負)是整數。 (2 **31-1)(或2,147,483,647)。 

浮點數:

它們常見的如3.14159 或 49.1。默認情況下,用浮點數所需的小數位數的最小數量。例如,代碼:

$many = 2.2888800;
$many_2 = 2.2111200;
$few = $many + $many_2;
print(.$many + $many_2 = $few<br>.);

它在瀏覽器產生以下輸出:

2.28888 + 2.21112 = 4.5

布爾類型:

它們隻有兩個可能的值:true或false。 PHP提供了幾個常量,尤其是用作布爾值:TRUE和FALSE,它可以用來像這樣:

if (TRUE)
   print("This will always print<br>");
else
   print("This will never print<br>");

其他類型也可以被認為布爾值:

下麵是規則決定的任何值布爾類型的已經不是“真相”:

  • 如果值是一個數字,如果恰好等於零那麼它為false,否則為true。

  • 如果該值是一個字符串,如果該字符串是空的(具有零字符)或者是字符串“0”那麼它為false,否則都為true。

  • NULL類型的值始終是false.

  • 如果該值是一個數組,如果它不包含任何其他值那麼它是false,否則它的值為 true。對於一個對象,其中包含一個值是指具有已賦值的成員變量。

  • 有效的資源的值是true(雖然有些函數返回的資源時,他們不成功將返回FALSE)。

  • 不要用double為布爾值。

下麵每個變量都有嵌在它的名字,當它被用在布爾上下文中的真值。

$true_num = 3 + 0.14159;
$true_str = "Tried and true"
$true_array[49] = "An array element";
$false_array = array();
$false_null = NULL;
$false_num = 999 - 999;
$false_str = "";

NULL:

NULL是一種特殊類型的隻有一個值:NULL。給一個變量NULL值,分配值它是這樣的:

$my_var = NULL;

特殊常量NULL是按照慣例大寫,但實際上它是不區分大小寫的,也完全可以:

$my_var = null;

被指定為NULL的變量具有以下屬性:

  • 在布爾上下文中它的計算結果為FALSE。

  • 當使用isset()函數測試,則返回FALSE。

字符串:

它們是字符序列,如“PHP支持字符串操作”。下麵是字符串的有效示例

$string_1 = "This is a string in double quotes";
$string_2 = "This is a somewhat longer, singly quoted string";
$string_39 = "This string has thirty-nine characters";
$string_0 = ""; // a string with zero characters

單引號字符串被視為幾乎從字麵上是一樣的,而雙引號字符串會有替換變量的值,以及解釋某些字符序列。

<?
$variable = "name";
$literally = 'My $variable will not print!\\n';
print($literally);
$literally = "My $variable will print!\\n";
print($literally);
?>

這將產生以下結果:

My $variable will not print!\n
My name will print

有關於字符串的長度冇有人為限製 - 可用在內存的範圍內,應該能夠使任意長的字符串。

這是用雙引號分隔(如“this”)字符串是由PHP的預處理均通過以下兩種方式:

  • 用反斜杠(\)開頭的某些字符序列替換為特殊字符

  • 變量名(從$)被替換為它們的值的字符串表示形式。

轉義序列替換為:

  • \n被替換為換行符

  • \r 被替換回車符

  • \t 被替換為製表符

  • \$ 被替換的美元符號本身 ($)

  • \" 被替換為單一的雙引號(")

  • \\ 被替換為單個反斜杠 (\)

here文檔:

可分配多個行使用此文檔中的單個字符串變量:

<?php

$channel =<<<_XML_
<channel>
<title>What's For Dinner<title>
<link>http://menu.example.com/<link>
<description>Choose what to eat tonight.</description>
</channel>
_XML_;

echo <<<END
This uses the "here document" syntax to output
multiple lines with variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
<br />
END;

print $channel;
?>

這將產生以下結果:

This uses the "here document" syntax to output
multiple lines with variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!

<channel>
<title>What's For Dinner<title>
<link>http://menu.example.com/<link>
<description>Choose what to eat tonight.</description>

變量作用域:

範圍可以被定義為一個可變量在聲明它的程序的範圍。 PHP變量可以是以下四種範圍類型:

變量命名:

命名規則的變量是:

  • 變量名必須以字母或下劃線字符。

  • 變量名可以包含數字,字母,下劃線,但不能使用以下字符: + , - , % , ( , ) . & 等

變量冇有大小的限製,想用多長就多長。