php学习笔记--php数据类型

php ajax 1332      收藏
php学习笔记,关于php基础知识,php的基本数据类型

PHP语言中包含的数据类型可以划分成3类:标量数据类型、复合数据类型、特殊数据类型。 

各数据类别包含的数据类型如下表所示: 

标量数据类型:整形、浮点型、布尔型、字符串 

复合数据类型:数组、对象 

特殊数据类型:NULL、资源  

(1)整形integer、int

    没有小数点的数字。在32位操作系统中,整形的有效范围是2147483648 到 -2147483647

    整形数据可以用十进制、八进制(以0为前缀)或十六进制(以0x为前缀)表示,并且可以包含”+”和”-”。 

(2)浮点型float、double)     

    有小数点的数字。浮点数的字长也和平台有关,允许表示的范围在1.7E-308~1.7E+38之间,精确到小数点后15位。

(3)布尔型boolean、bool)   

    布尔型的数据只有 true 和 false 。分别对应了 真 和 假 。使用布尔型时,true 和 false 取值是不区分大小写的。 

(4)字符串string)     

   字符串是一个连续的字符序列,组成字符串的字符是任意的,PHP没有对字符串的最大长度进行严格的规定,必须用单引号、双引号或定界符来包裹字符串 

双引号字符串支持变量的解析和转义字符;单引号不进行解析和转义;

定义简单的字符串时,使用单引号是更加高效的处理方式,使用双引号时,php将浪费一些开销处理字符转义和变量解析,因此,如果没有特别需求应使用单引号。

自学php博客

定界符:php还引入了另一种字符串定义方法,使用定界符“<<<”来定义字符串,字符串必须包含在一组定界标示符内。

$str=<<

PHP100 is website

i like php100

EOD;

echo <<

there is some string here

$str

EOT;

echo "
"

echo '$str';

?>

定界符“<<<”的后面紧跟的是定界标示符。标示符由字母、数字、下划线构成,并且不能以数字开始。结尾的标示符必须顶格写,前面不能有任何其他字符。通常的错误是将结尾的定界符进行缩进。定界符中的字符串可以被解析,可以使用转义字符,但不必转义引号,当需要定义或者输出大量的文本时,使用定界符比较方便。

(5)数组(Array) 

数组是PHP中一种重要的复合数据类型。     

数组可以存放多个数据,并且可以存入任何类型的数据。     

数组中的每个元素都有其唯一的编号,称为索引。索引既可以是数字,也可以是字符串。 

索引和值是一一对应的关系。

$arr=array();

print_r($arr);//print_r用于打印数组   =>是键值对符号

(6)对象(Object 

在PHP中,对象是一种更高级的数据类型。     

一个对象类型的变量,是由一组属性值和一组方法构成。其中属性表示对象的一种状态,方法通常表示对象的功能。

(7)NULL  

NULL表示一个变量没有值。NULL不区分大小写。     

在下列情况下变量被认为是NULL:         

①将变量直接赋值为NULL;         

②声明的变量尚未被赋值;         

③被unset()函数销毁的变量。 

$n=null; var_dump($n); 输出结果只有一个null

(8)资源类型(resource    

资源是一种特殊类型的变量,保存了到外部资源的一个引用。    

资源是通过专门的函数来建立和使用的。 

.txt文本可以存放数据,也可以把它理解为一个数据库,资源=fopen(x.txt);fopen函数返回一个资源型的数据类型;


函数:

bool is_int($val)            $val是整数,返回 true 

bool is_float($val)          $val是小数,返回 

true bool is_numeric($val)   $val是数字或者数字字符串,返回 true 

bool is_string($val)         $val是字符串,返回 

true bool is_bool($val)      $val是布尔值,返回 true

bool is_array($val)          $val是数组,返回 

true bool is_null($val)      $val是null,返回 true 

关于布尔型数据的实例:

例子:

$if=true;

$if=false;

echo $if;浏览器显示空白;


$if=true;

echo $if;输出1;


$if=true;

var_dump($if);输出 boolean true,var_dump是可以输出变量的数据类型和值,若果是字符串的话,还可以把字符串的长度打印出来。


类型转换是指将变量从一种数据类型转换成其他数据类型。          

转换方法:    

(1)自动转换   

通常发生在不同数据类型的变量混合运算时,如参与运算的变量类型不同时,先转换成同一类型,再进行运算。         

通常只有整形、浮点型、字符串和布尔型才会使用自动类型转换。 

自动转换规则:      

布尔值:true 转换成整形 1,false 转换成整形 0 ;

NULL:转换成 0 ;

整形和浮点型参与运算时,先把整形转换成浮点型 ;

字符串和数字型数据参与运算时,先把字符串转换成整形

字符串是一个纯数字的时候,字符串转化为数字的时候,就直接是一个数字。

字符串如果前面的是数字,后面部分有不是数字的,转化成的数字,只取前面的数字部分,非数字之后的部分直接舍去。

浮点型转化为整型时,如果数值超过了整型的取值范围,那么结果可能是0或者是整型的最小负数。

布尔型转化为字符串时,true转化为1,false还有null都会转化为空字符串。

(2)强制数据类型转换       

强行改变一个变量的数据类型。         

在要转换的变量之前加上一个小括号,并把目标数据类型填写在小括号中。     

$变量名 = (变量类型)$变量名; 

假设有变量:

$val='abc';        

$int=123;      

转换成整型:$val=(int)$val;      $val=(integer)$val;   // $a=false; $a=(int)$a; 输出结果是0

转换成浮点型:$val=(float)$val;     

转换成布尔值:$val=(bool)$val;   $val=(boolean)$val;     

转换成字符串:$int= (string)$int; 

除了上述方法外,我们还可以使用系统函数来转换数据类型,如下所示:      

$val = intval($val);        将变量转换成整型      

$val = floatval($val);      将变量转换成浮点型      

$val = boolval($val);       将变量转换成布尔值      

$val = strval($val);        将变量转换成字符串 

php是一种弱类型的变成语言,$val=10;$val='abc'; 可以同时存在一个文本里面,在其他比如C等,强数据类型语言中,是不可以这样的,强类型里面,一个变量可以存的数据类型是需要事先声明的。