萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP中數據類型詳解

PHP中數據類型詳解

PHP中數據類型詳解

四種標量類型:
boolean (布爾型)
integer (整型)
float (浮點型, 也稱作 double)
string (字符串)
兩種復合類型:
array (數組)
object (對象)
最後是兩種特殊類型:
resource (資源)
NULL (NULL)
為了確保代碼的易讀性,本手冊還介紹了一些偽類型:
mixed
number
callback
以及偽變量 $....
可能還會讀到一些關於“雙精度(double)”類型的參考。實際上 double 和 float 是相同的,由於一些歷史的原因,這兩個名稱同時存在。
變量的類型通常不是由程序員設定的,確切地說,是由 PHP 根據該變量使用的上下文在運行時決定的。
Note: 如果想查看某個表達式的值和類型,用 var_dump()。
如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。要查看某個類型,不要用 gettype(),而用 is_type 函數。以下是一些范例:
 <?php教程
$a_bool = TRUE;   // a boolean
$a_str  = "foo";  // a string
$a_str2 = 'foo';  // a string
$an_int = 12;     // an integer

echo gettype($a_bool); // prints out:  boolean
echo gettype($a_str);  // prints out:  string

// If this is an integer, increment it by four
if (is_int($an_int)) {
    $an_int += 4;
}

// If $bool is a string, print it out
// (does not print out anything)
if (is_string($a_bool)) {
    echo "String: $a_bool";
}
?>

如果要將一個變量強制轉換為某類型,可以對其使用強制轉換或者 settype() 函數。
注意變量根據其當時的類型在特定場合下會表現出不同的值。更多信息見類型戲法。此外,你還可以參考 PHP 類型比較表看不同類型相互比較的例子。
 
 
 
#
 
二、PHP的數據類型

Int zjj=100;                  //這種賦值是對的

Int zjj="hello,world";            //這種編譯器就會提示錯誤

在PHP中,對變量的數據類型不需要聲明,可以直接賦值。如下面的

$zjj=100;               //表示zjj為整型

$zjj="hello,world"            // 表示zjj為字符串型

PHP中的數據類型分成兩種:一是標量數據類型,另一種就是復合數據類型。

標量數據類型有:

布爾型(boolean)         整型(integer)          浮點型(foat也叫做double)    

復合數據有:

數組(array)        對象(object)

還有兩種特殊的數據

資源(resource)           空值(NULL)

1、布爾型是最簡單的變量,布爾變量:true和false值

要設定一個布爾變量,只需將這兩個值賦給變量就行了。PHP中就算是關鍵字也可以做變量名。

<?php
 $True="我是變量" . True;                   //這裡有點的,書上有時印刷並沒有。
 echo($True);
 echo("<BR>");                        //起到回車的作用
 echo("我是關鍵字" . True)
?>

執行結果:我是變量1                            //這裡true就是1

                  我是關鍵字1

true和false實際上是代表數值1和0,因此true在輸出時顯示為1,但是在給變量賦值的時候,如果賦值為1,則被當成整型,如果被賦值為true,則被當成布爾型

當轉換為布爾型時,以下值被認為是false

 (1)布爾值false

(2)整型值0(零)

(3)浮點型值0.0(零)

(4)空白字符串和字符串"0"

(5)沒有成員變量的數組

(6)沒有單元的對象(僅適用php4)

(7)特殊類型NULL

而所有其他值都被認為是TRUE包括任何資源。

2、整型

+2147483647到-2147483647

 

<?php
 $int_D=2147483647;  //十進制賦值
 echo($int_D);
 echo("<br>");
 $int_H=0x7FFFFFFF;  //十六進制賦值
 echo($int_H);
 echo("<br>");
 $int_O=017777777777;  //八進制賦值
 echo($int_O);
 echo("<BR>");
?>

執行結果:

2147483647
2147483647
2147483647

如果指定一個數超出了inter的范圍,將會被解釋為float

3、浮點型

1.7E-308到1.7E+308

<?php
 $float_1=90000000000; 
 echo($float_1);
 echo("<br>");
 $float_2=9E10; 
 echo($float_2);
 echo("<br>");
 $float_3=9E+10;
 echo($float_3);
?>

執行結果:

90000000000
90000000000
90000000000

4、字符串

PHP中有三種方式定義字符串

1、單引號方式。

$single_str='我是人';

如果想在浏覽中輸出單引號,必須在字符串中加入轉義符號“”

<?
 $single_str='我被單引號括起來了!<br>';      //正常輸出
 echo $single_str;
 $single_str='輸出單引號: '嘿嘿,我在單引號裡面'<br>';      //加了轉義符可以輸出單引號
 echo $single_str;
 $single_str='輸出雙引號:"我在雙引號裡面"<br>';         //正常輸出
 print $single_str;
 $single_str='輸雙美元符號:$';                 //正常輸出
 print $single_str;
?>

執行結果:

我被單引號括起來了!
輸出單引號: '嘿嘿,我在單引號裡面'
輸出雙引號:"我在雙引號裡面"
輸雙美元符號:$

(2)、雙引號方式

$Double_Str="我是人"

為了在字符串中輸出各種特殊字符,可以使用轉義符

$Double_Str="輸出美元符號:$";

$Double_Str="輸出反斜槓:";

<?
 $Double_str="我被雙引號括起來了!<br>";
 echo $single_str;
 $single_str="輸出單引號:'嘿嘿,我在單引號裡面'<br>"; //不需要轉義符
 echo $single_str;
 $single_str="輸出雙引號:"我在雙引號裡面"<br>";  //需要轉義符
 print $single_str;
 $single_str="輸出美元符號:$ <br>";  //需要轉義符
 print $single_str;
 $single_str="輸出反斜槓 : <br>";  //需要轉義符
 print $single_str;
 
?>

執行結果:

輸出單引號:'嘿嘿,我在單引號裡面'
輸出雙引號:"我在雙引號裡面"
輸出美元符號:$
輸出反斜槓 :

(3)、Heredoc 方式給字符串賦值

<?
$zjj1_str =<<<zjj          //=<<<這個相當於鏈接符,獲取zjj到zjj中間的數據
 你好<br>
 美元符號  $ <br>         //zjj1和zjj都是可以隨便起名字的。
 反斜槓   <br>             
 "我愛你"<br>
 '我恨你'
zjj;
 echo $zjj1_str;
?>

執行結果:

你好
美元符號 $
反斜槓
"我愛你"
'我恨你'

(4)、串中的變量

<?php
 $str_1 = "我是變量的值!"; 
 $str_2 = "str_1 : $str_1<br>";  //雙引號字符串中包含變量$str_1
 echo $str_2;

 $str_1 = '我是變量的值';
 $str_2 = 'str_1 : $str_1<br>';  //單引號中包含字符串的值
 echo $str_2;

 $str_1 = "我是變量的值!"; 
 $str_2 = "str_1 : $str_12 <br>";  //引用的變量名後,多了個字符2即$str_12
 echo $str_2;

 $str_1 = "我是變量的值!"; 
 $str_2 = "str_1 : ${str_1}2 <br>";  //引用的變量名後,多了個字符2即$str_12
 echo $str_2;
?>

執行結果:

str_1 : 我是變量的值!
str_1 : $str_1
str_1 :
str_1 : 我是變量的值!2

從輸出可以看出,雙引號字符串是賦值的含義,直接輸出變量的值。而單引號的字符串,包含的是變量的名稱,可以理解為直接運行語句的結果,直接輸出變量的名稱而不是變量的值。

$str_2 = "str_1 : $str_12 <br>";    這句如果變量後面跟著非空格的字符,會讓編譯器糊塗,會把$str_12當成變量,而上面又沒有定義,因此會輸出空值。為了解決這個問題可以用${str_1}2 或{$str_1}2 這個來表達。
使用 PHP 函數對變量 $x 進行比較
表達式 gettype() empty() is_null() isset() boolean : if($x)
$x = ""; string TRUE FALSE TRUE FALSE
$x = null; NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x is undefined NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = "1"; string FALSE FALSE TRUE TRUE
$x = "0"; string TRUE FALSE TRUE FALSE
$x = "-1"; string FALSE FALSE TRUE TRUE
$x = "php"; string FALSE FALSE TRUE TRUE
$x = "true"; string FALSE FALSE TRUE TRUE
$x = "false"; string FALSE FALSE TRUE TRUE
 
松散比較 ==
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE
1 TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE
-1 TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
"1" TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
array() FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
"php" TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
 
嚴格比較 ===
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
1 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
-1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
"1" FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
array() FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
"php" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE

copyright © 萬盛學電腦網 all rights reserved