細說PHP 5 4 變數的型別

2022-06-09 13:27:09 字數 3168 閱讀 4144

變數型別是指儲存在該變數中的資料型別。計算機操作的物件是資料在計算程式語言世界裡,每乙個資料也都有它的型別,具有相同型別的資料才能彼此操作。例如書櫃是裝書用的、大衣櫃是放衣服用的、保險櫃是存放貴重物品的、檔案櫃式存放檔案用的......

php中提供了乙個不斷擴充的資料型別集,可以將不同資料儲存在不同的資料型別中。但php語言是一種弱型別檢查的語言。和其他語言不同的是,變數或者常量的資料型別由上下文決定。在強型別語言中,變數要先指定型別,然後才可以儲存對應指定型別的資料。而php等若型別語言中,變數的型別是有儲存的資料據決定的。例如,強型別語言就好比在製作乙個櫃子之前,就要決定這個櫃子是什麼型別的櫃子,如果確定了是書櫃,那麼就只能用做裝書用。而在弱型別語言中,同乙個櫃子,你用來裝書它就是書櫃,用來裝衣服它就是衣櫃,具體什麼型別有存放的內容決定。

5.4.1 型別介紹

變數有多種型別,php中支援以下八種原始型別,為了確保**的易讀性,本書中還介紹了一些偽型別,例如mixed、number、callback。

boolean (布林型)

integer (整形)

float (浮點型,也稱double)

string (字串)

array (陣列)

object (物件)

resource (資源)

null

變數的型別通常不是由程式設計師設定的,確切地說,是由php根據該變數使用的上下文在執行時決定的。如果想檢視某個表示式的值和型別,可以使用函式var_dump()。

1

<?php

2$bool = true; //

乙個布林型

3$str = "foo"; //

乙個字串型別

4$int = 12; //

乙個整型56

var_dump($bool); //

直接輸出變數$bool的型別和值bool(true)

7var_dump($str); //

直接輸出變數$str的型別和值string(3) "foo"

8var_dump($int); //

直接輸出變數$int的型別和值 int(12)

9 ?>

5.4.2 布林型(boolean)

布林型是php中標量型別之一,這是最簡單的型別。boolean表達了true或false。即「真」或「假」。在php進行關係運算(或稱比較運算)以及布林運算(或稱邏輯運算)時,返回的都是布林結果,它是構成php邏輯控制的判斷依據。

在php中布林型不光是只有true或false兩個值,當運算子,函式或者流程控制需要乙個boolean引數時,任何型別的值php都會自動轉換成布林型的值。以下值被認為是flase,所以其他值都被認為是true(包括任何資源)。

1

<?php

2var_dump((bool) ""); //

bool(false)

3var_dump((bool) 1); //

bool(true)

4var_dump((bool) -2); //

bool(true)

5var_dump((bool) "foo"); //

bool(true)

6var_dump((bool) 2.3e5); //

bool(true)

7var_dump((bool) array(12)); //

bool(true)

8var_dump((bool) array()); //

bool(false)

9var_dump((bool) "false"); //

bool(true)

10 ?>

5.4.3 整形(integer)

整形也是php中標量型別之一,整型變數用於儲存整數,例如:中的乙個數。在計算機語言中,整形資料不僅是在前面加上可選的符號(+或者-)表示整數或者負數,也不是只有我們常用的十進位制數。還可以用十六進製制或八進位制符號指定,如果用八進位制符號,數字前必須加上"0"(零),用十六進行符號前必須加上「0x」。宣告整形資料如下所示:

1

<?php

2$int = 1234; //

十進位制數

3$int = -123; //

乙個負數

4$int = 0123; //

八進位制數(等於十進位制的83)

5$int = 0x1a; //

十六進製制數(等於十進位制的26)

6 ?>

其中八進位制、十進位制和十六進製制,都可以用「+」或「-」開頭來表示資料的正負,其中「+」都可以省略。八進位制與十進位制一致,但由0~7的數字序列組成。十六進製制由0~9的數字或a~f的字母組成的序列。但在表示式中計算的結果均以十進位制數字輸出。

整型數值有最大的使用範圍,整形數的字長和平台有關,對於32位的作業系統而言,最大值整數字二十多億,具體為2147483647。php不支援無符號整數,所以不像其他語言那樣將整數都變成正數,也就不能將最大值翻一倍。整形的最小值為-2147483648。如果給定的乙個數超過了integer的這個範圍,將會解釋為float。同樣,如果執行的運算結果超出了integer這個範圍,也會返回float。

<?php

$large_number = 2147483647;

var_dump($large_number); //

輸出為:int(2147483647)

$large_number = 2147483648;

var_dump($large_number); //

輸出為:float(2147483648)

var_dump(0x80000000); //

輸出為:float(2147483648)

$million = 1000000;

$large_number = 50000*$million

;

var_dump($large_number); //

輸出為:float(50000000000)

?>

試玩 PHP 5 4 的新特性

1.例項化時訪問類成員 class human public function hello old style human new human gonzalo echo human hello new cool style echo new human gonzalo hello 2.短陣列定義語法...

PHP 5 4中的traits特性

trait 是 php5.4 中的新特性,是 php 多重繼承的一種解決方案。例如,需要同時繼承兩個 abstract class,這將會是件很麻煩的事情,trait 就是為了解決這個問題。簡單使用 首先,當然是宣告個 trait,php5.4增加了 trait 關鍵字 trait first tr...

php 5 4以上安裝php fpm方法

php 5.4以上安裝php fpm方法 如果你已經安裝過php 也是一樣 那就重新編譯php 覆蓋1 先去php官網下個 php 5.6.29.tar.gz wget 2 configure prefix usr local php with iconv usr local libiconv en...