PHP資料類型總結_PHP教程

來源:互聯網
上載者:User
PHP 共有 8 中資料類型:
類型名稱 類型表示 取值
bool 布爾型 true,false
integer 整型 -2147483647-2147483648
string 字串型 字串長度取決於機器記憶體
float 浮點型 最大值1.8e308
object 對象 通過new執行個體化 $obj=new person();
array 數群組類型 $arr=array(1,2,3,4,5,6);//一維數組
resourse
null 空值 null


布爾型bool :

對於其他類型我們可以使用(bool)或者(boolean) 進行強制轉換 eg:(bool)1=true;

以下幾種情況在強制轉化的時候預設為false:


轉換 結果
布爾型的false var_dump((bool) false) bool(false)
整型0 var_dump((bool) 0); bool(false)
浮點型0.0 var_dump((bool) 0.0); bool(false)
字串‘0’ var_dump((bool) '0'); bool(false)
空數組$arr=array(); var_dump((bool) $arr) bool(false)
不包含任何成員變數的Null 物件只在PHP4使用,PHP5中為true bool(false)
NULL或者尚未賦值的變數var_dump((bool) NULL) bool(false)
從沒有任何標記(tags)的XML文檔產生的SimpleXML 對象 bool(false)


字串'0.0'轉換結果為bool(true)
註:-1和其他非零值(不論正負)都是true

整型integer:
整型的範圍-2147483647--2147483647 ,如果超過該值會自動轉換成float型
我們可以使用echo PHP_INT_SZIE 輸出integer的字長,和機器有關。echo PHP_INT_MAX 輸出integer的最大值
PHP中沒有整除運算 如果執行 1/2 會產生 float的0.5 如果想實現整除效果,則可以使用 (int)(1/2)=0 或者使用round(25/7)=4
強制轉化成整型 (int)或者(integer) bool型 ture 轉換成 1 ,false轉換成0

浮點型float:
取值範圍 最大值 :1.8e308 不知道最小值是多少? 求高手告知
浮點數的字長也和機器有關, 好像沒有PHP_FLOAT_SIZE 啊,求高手告知如何的到浮點數字長

字串類型string:
定義字串的4種方法:
1.單引號
2.雙引號
3.heredoc文法結構
4.nowdoc 文法結構(PHP5.3.0之後)
單引號
單引號定義了最原始的字串,裡面的所有內容都按字串處理,如果字串中包含單引號則可以用\轉義
雙引號
雙引號定義的字串會解析一些特殊字元(\n,\b)和變數
可以將變數放置在雙引號中的方式來代替將變數轉換成 字串(string):
$num=10;
$str = "$num"; //$str為字串型的10
heredoc文法結構
<<<標示符
字串本身
標示符
結束時的標示符必須在一行的開始位置,而且標示符的定義格式也必須按照PHP定義的規則,只能包含數字,字母,底線,並且不能以數字底線開頭
結束標示符哪一行不允許有其他字元,可以在標示符後面添加一個分號,切分號前後也不能有tab或空格,否則PHP將無法解析該標示符,會繼續向下尋找標示符,如果在檔案結尾前仍沒有找到則會產生一個錯誤
heredoc就是一個沒有使用雙引號的雙引號,就是裡面可以包含雙引號,且不用轉義,而且可以解析特殊字元和變數
nowdoc 文法結構
<<<'標示符'
字串本身
標示符 www.2cto.com
nowdoc的開始標示符必須使用單引號括起來,結束標示符和其他規則都和heredoc一樣
nowdoc就是沒有使用單引號的單引號,nowdoc包含的字串會原樣輸出,裡麵包含的特殊字元和變數不會被解析

如果雙引號中包含陣列變數中的幾種情況
//我們先定義以下數組
[php]
1. $arr=array(
2. 'one'=>array(
3. 'name'=>'jiangtong',
4. 'sex'=>'男'
5. ),
6. 'two'=>'zhaohaitao',
7. 'three'=>'fanchangfa'
8. );

上面是的數組中第一個元素二維的,後兩個是一維的,我們訪問一維的時候下面幾種方式:
[php]
1. echo "$arr[two]"//key沒有單引號
2. echo "$arr['two']"//key有單引號 會出錯,如果我們改成 echo "{$arr['two']}"; 則可以正確輸出結果
3. echo "{$arr[two]}"//有雙大括弧,但是key沒有單引號 這種情況PHP會先尋找有沒有常量banana,有的話則將其替換,由於沒有two常量則出錯
可見在訪問一維數組的時候 要麼不加key不加引號(考慮到第三種情況啊),加了就要被{}括起來,可以全不加。
多維陣列測試
[php]
1. echo "$arr[one][name]"; //輸出結果為Array[name] 可見它返回了一個數組,只解析了一維
2. echo"{$arr['one']['name']}";//輸出結果為jiangtong
在多維陣列的訪問中必須使用了大括弧key必須使用雙引號括起來

數群組類型
在字串類型中已經提到,被大括弧括起來的,如果不加key引號,是合法的,那麼PHP首先會尋找是否有名為key的常量,有的話就會被替換,沒有的話會產生一個找不到常量的警告才按一般字元串處理,所以建議大家一定加單引號
轉換成數組使用(array)type 或者array(type) ,但是如果將只有一個值的轉換成數組,會得到一個元素的數組,且下標為0,將NULL轉換成數組會得到空的數組
我們可以在遍曆數組的時候改變數組的值,在PHP5.0以上可以使用引用實現
[php]
1. $arr=array('a','b','c','d','e' );
2. foreach($arr as &$value)
3. {
4. $value=strtoupper($value);
5. echo $value;
6. }//輸出結果 ABCDE

Object物件類型
執行個體化對象我們使用new 加入有一個person類,我們可以通過以下方式

[php]
1. $objPerson=new person();

強制轉換 (object): 如果將一個對象轉化成對象那麼它沒有任何改變,對於其他任何值將會執行個體化一個stdclass的對象,如果該值為NULL,則會執行個體化一個Null 物件,如果 將數群組轉換成對象那麼會將數組的key作為對象的屬性,value為屬性值,其他類型的值則名為scalar的成員變數包含該值
[php]
1. $arr=array('one'=>'a','two'=>'b' );
2. $obj=(object)$arr;
3. echo $obj->one //輸出結果為a;
註:這是由key的數組如果沒有字元key的數組,我不知道如何訪問,誰知道希望告訴小弟一下,謝謝。
對於其他值
[php]
1. $obj1=(object)'jiang';
2. echo $obj1->scalar;//輸出結果jiang

NULL 空類型
null大小寫不敏感,NULL類型只有一個取值,表示一個變數沒有值,下面三種情況變數被認為為NULL
1.被賦值為NULL
2.尚未被賦值
3.被unset();


摘自 jt521xlg的專欄

http://www.bkjia.com/PHPjc/478264.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478264.htmlTechArticlePHP 共有 8 中資料類型: 類型名稱 類型表示 取值 bool 布爾型 true,false integer 整型 -2147483647-2147483648 string 字串型 字串長度取決於機器內...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.