{php 数据类型}

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

四种标量类型:

两种复合类型:

最后是两种特殊类型:

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

以及伪变量 $....

可能还会读到一些关于“双精度(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当成变量,而上面又没有定义,2011060215222160.jpg因此会输出空值。为了解决这个问题可以用${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

 

#

转载于:https://www.cnblogs.com/leokou/archive/2011/06/01/2067144.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值