資料型別
存在用於不同目的的不同資料型別。PHP 沒有明確的型別定義,但變數的型別取決於分配的值的型別,或者由其轉換為的型別。這是關於型別的簡要概述,有關詳細的文件和示例,請參閱 PHP 型別主題 。
PHP 中有以下資料型別:null,boolean,integer,float,string,object,resource 和 array。
空值
Null 可以分配給任何變數。它代表一個沒有價值的變數。
$foo = null;
這使變數無效,如果呼叫它的值將是未定義的或無效的。變數從記憶體中清除並由垃圾收集器刪除。
布林
這是最簡單的型別,只有兩個可能的值。
$foo = true;
$bar = false;
布林值可用於控制程式碼流。
$foo = true;
if ($foo) {
echo "true";
} else {
echo "false";
}
整數
整數是正數或負數。它可以與任何數字基礎一起使用。整數的大小取決於平臺。PHP 不支援無符號整數。
$foo = -3; // negative
$foo = 0; // zero (can also be null or false (as boolean)
$foo = 123; // positive decimal
$bar = 0123; // octal = 83 decimal
$bar = 0xAB; // hexadecimal = 171 decimal
$bar = 0b1010; // binary = 10 decimal
var_dump(0123, 0xAB, 0b1010); // output: int(83) int(171) int(10)
浮動
浮點數,雙精度或簡稱為浮動是十進位制數。
$foo = 1.23;
$foo = 10.0;
$bar = -INF;
$bar = NAN;
排列
陣列就像一個值列表。最簡單的陣列形式由整數索引,並由索引排序,第一個元素位於索引 0。
$foo = array(1, 2, 3); // An array of integers
$bar = ["A", true, 123 => 5]; // Short array syntax, PHP 5.4+
echo $bar[0]; // Returns "A"
echo $bar[1]; // Returns true
echo $bar[123]; // Returns 5
echo $bar[1234]; // Returns null
陣列還可以將除整數索引之外的鍵與值相關聯。在 PHP 中,所有陣列都是幕後的關聯陣列,但是當我們明確地引用關聯陣列時,我們通常意味著包含一個或多個不是整數的鍵。
$array = array();
$array["foo"] = "bar";
$array["baz"] = "quux";
$array[42] = "hello";
echo $array["foo"]; // Outputs "bar"
echo $array["bar"]; // Outputs "quux"
echo $array[42]; // Outputs "hello"
字串
字串就像一個字元陣列。
$foo = "bar";
像陣列一樣,可以索引字串以返回其各自的字元:
$foo = "bar";
echo $foo[0]; // Prints 'b', the first character of the string in $foo.
賓語
物件是類的例項。可以使用 ->
運算子訪問其變數和方法。
$foo = new stdClass(); // create new object of class stdClass, which a predefined, empty class
$foo->bar = "baz";
echo $foo->bar; // Outputs "baz"
// Or we can cast an array to an object:
$quux = (object) ["foo" => "bar"];
echo $quux->foo; // This outputs "bar".
資源
資源變數包含開啟檔案,資料庫連線,流,影象畫布區域等的特殊控制代碼(如手冊中所述 )。
$fp = fopen('file.ext', 'r'); // fopen() is the function to open a file on disk as a resource.
var_dump($fp); // output: resource(2) of type (stream)
要將變數的型別作為字串,請使用 gettype()
函式:
echo gettype(1); // outputs "integer"
echo gettype(true); // "boolean"