您的位置:首页 > 编程语言 > PHP开发

php数据类型

2013-12-09 11:26 330 查看
{php 数据类型}

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 函数。以下是一些范例:




<?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 = "";stringTRUEFALSETRUEFALSE
$x = null;NULLTRUETRUEFALSEFALSE
var $x;NULLTRUETRUEFALSEFALSE
$x is undefinedNULLTRUETRUEFALSEFALSE
$x = array();arrayTRUEFALSETRUEFALSE
$x = false;booleanTRUEFALSETRUEFALSE
$x = true;booleanFALSEFALSETRUETRUE
$x = 1;integerFALSEFALSETRUETRUE
$x = 42;integerFALSEFALSETRUETRUE
$x = 0;integerTRUEFALSETRUEFALSE
$x = -1;integerFALSEFALSETRUETRUE
$x = "1";stringFALSEFALSETRUETRUE
$x = "0";stringTRUEFALSETRUEFALSE
$x = "-1";stringFALSEFALSETRUETRUE
$x = "php";stringFALSEFALSETRUETRUE
$x = "true";stringFALSEFALSETRUETRUE
$x = "false";stringFALSEFALSETRUETRUE
松散比较 ==
TRUEFALSE10-1"1""0""-1"NULLarray()"php"""
TRUETRUEFALSETRUEFALSETRUETRUEFALSETRUEFALSEFALSETRUEFALSE
FALSEFALSETRUEFALSETRUEFALSEFALSETRUEFALSETRUETRUEFALSETRUE
1TRUEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSE
0FALSETRUEFALSETRUEFALSEFALSETRUEFALSETRUEFALSETRUETRUE
-1TRUEFALSEFALSEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSE
"1"TRUEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSE
"0"FALSETRUEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE
"-1"TRUEFALSEFALSEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSE
NULLFALSETRUEFALSETRUEFALSEFALSEFALSEFALSETRUETRUEFALSETRUE
array()FALSETRUEFALSEFALSEFALSEFALSEFALSEFALSETRUETRUEFALSEFALSE
"php"TRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSE
""FALSETRUEFALSETRUEFALSEFALSEFALSEFALSETRUEFALSEFALSETRUE
严格比较 ===
TRUEFALSE10-1"1""0""-1"NULLarray()"php"""
TRUETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
FALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
1FALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
0FALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
-1FALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
"1"FALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSE
"0"FALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE
"-1"FALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSE
NULLFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSE
array()FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSE
"php"FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSE
""FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: