ホームページ  >  記事  >  バックエンド開発  >  {phpデータ型}

{phpデータ型}

WBOY
WBOYオリジナル
2016-06-23 14:31:29895ブラウズ

PHP 支持8种基本的数据类型。

四种标量类型:

boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串)

两种复合类型:

array (数组) object (对象)

最后是两种特殊类型:

resource (资源) NULL (NULL)

为了确保代码的易读性,本手册还介绍了一些伪类型:

mixed number callback

以及伪变量 $....

可能还会读到一些关于“双精度(double)”类型的参考。实际上 double 和 float 是相同的,由于一些历史的原因,这两个名称同时存在。

变量的类型通常不是由程序员设定的,确切地说,是由 PHP 根据该变量使用的上下文在运行时决定的。

Note: 如果想查看某个表达式的值和类型,用 var_dump()。

如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype()。要查看某个类型,不要用 gettype(),而用 is_type 函数。以下是一些范例:

                            <p class="sycode">                         <?         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         "         ;}         ?>                            </p>


如果要将一个变量强制转换为某类型,可以对其使用强制转换或者 settype() 函数。

注意变量根据其当时的类型在特定场合下会表现出不同的值。更多信息见类型戏法。此外,你还可以参考 PHP 类型比较表看不同类型相互比较的例子。

 

 

 

#

 

              <p class="sycode">              二、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         我是关键字1true和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_1str_1 : str_1 : 我是变量的值    !    2    从输出可以看出,双引号字符串是赋值的含义,直接输出变量的值。而单引号的字符串,包含的是变量的名称,可以理解为直接运行语句的结果,直接输出变量的名称而不是变量的值。$str_2     =         "    str_1 : $str_12 <br>    "    ; 这句如果变量后面跟着非空格的字符,会让编译器糊涂,会把$str_12当成变量,而上面又没有定义,因此会输出空值。为了解决这个问题可以用${str_1}    2     或{$str_1}    2     这个来表达。              </p>

使用 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 "" "TrueFalseTRUE本当偽真偽偽真偽偽偽真実偽真偽偽真偽真TRUEFALSETRUE1TRUEFALSETRUEFALSEFALSE偽TRUE TRUE "0"FALSETRUEFALSETRUE FALSE FALSETRUEFALSEFALSEFALSEFALSEFALSE"-1"TRUEFALSE 虚虚真虚虚 TRUEFALSEFALSEFALSEFALSENULLFALSETRUEFALSETRUE偽偽偽偽真実真実 FALSETRUEarray()FALSETRUEFALSEFALSEFALSEFALSEFALSE 偽真真偽偽"php"TRUEFALSEFALSETRUEFALSEFALSEFALSEFAL SEFALSETRUE

True False
E FALSE FALSE FALSE FALSE FALSE FALSE 0
TRUE FALSE TRUE TRUE -1
「1」
FALSE TRUE
" " 偽"
FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE 本当
厳密比較 === TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" "" 偽偽偽"1"偽偽偽偽偽真偽偽偽偽偽FALSE"0"FALSEFALSEFALSE FALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE"-1" 誤り誤り誤り誤り誤り偽偽真偽偽偽偽NULL偽偽偽偽偽偽偽偽 TRUEFALSEFALSEFALSEarray()FALSEFALSEFALSEFALSEFALSE 誤り誤り誤り誤り真実誤りFALSE"php"FALSEFALSEFALSEFALSEFALSEFALSEFALSE偽偽偽真偽 「」 誤り本当#
TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE FALSE FALSE FALSE
1 FALSE FALSE TRUE FALSE FALSE
0 FALSE FALSE FALSE TRUE FALSE FALSE
-1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。