首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php学习之php的八种数据类型的使用

字符串类型:string

php学习之php的八种数据类型之字符串string的使用

1.整数型:int

说明:是负数、0、正数的集合、在php中存储整数为10进制、八进制、十六进制

语法:$var=整数数字;

八进制的写法:在数字前面加上0,就是八进制。数字的范围有0-7。

算法:出去开头0,各位+十位*8 +百为*8*8+千位*8*8*8….

$num=0456; //4*8*8+5*8+6=302

十六进制的写法:在数字前面加上0x,数字为0-f

算法:出去开头0,各位+十位*16 +百为*16*16+千位*16*16*16….

$num =0x456;//4*16*16+5*16+6=1110

十进制的写法:直接写数字,数字范围0-9

php最大的存储数值为:21亿。用常量PHP_INIT_MAX查询,最大存储值为2147483647,超过这个值自动转为float型

php最大的位数为14位,一个数值占多个位置,PHP_INT_SIZE

2.浮点型:float

说明:就是小数,浮点型也叫浮点数、float、双精度数double或实数real

php中的小说有两种表现形式,

普通的小数

科学计数法

浮点数的精度有限,尽管取决于系统,php通常使用ieee754双精度格式,则由于取整而导致的最大相对误差为1.11e-16。非基本数学运算可能会给出更大的误差,并且要考虑到进行复合运算时的误差传递

此外,以十进制能够精确表示的有理数如0.1或0.7,无论有多少为数都不能被内部所使用的二进制精确表示,因此不能在不丢失一点点精度的情况下转换为二进制的格式,这就会造成混乱的结果,如:floor((0.1+0.7)*10)通常会返回7而不是预期中的8,因为结果内部的表示其实是类似于7.9999999999999991118…

所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等,如果确实需要更高的精度,应该使用任意精度数学函数或者gmp函数

普通小数形式

小数末尾多个,小数点后面超过最大长度,会自动删除超出部分,最末尾会四舍五入

科学计数形式

超过14位自动转为科学计数法

3.布尔类型:boolean

说明:在php中布尔型的数据只有两个值,true和false

布尔值一般都用于返回的结果用于流程控制语句中

4.数组:array

说明:一组数据的集合

$变量=array(元素1,元素2,元素3,……);

5.对象:object

说明:世间万物皆为对象

在php中的对象是由类创建来的

//class创建一个类,调用对象

$name=null;

$age=0;

Class people{

//属性

var $name;

var $age;

//方法

function run()

{

echo '跑步';

}

}

//创建对象

$zs=new people();

$zs->name='张三';

$zs->age=23;

echo $zs->name;

$zs->run();

$ls= new people();

6.空:null

说明特殊的null值表示一个变量没有值,null类型唯一的值就是它本身null

在php中只能有定义变量并赋值的情况,没有只定义不赋值,这个时候就需要创建一个变量,不知道存储说明值,这个时候可以使用null来创建变量

用法:

7资源:resource

说明:就是引用php外部的内容,这个时候的类型就是资源,资源是通过专门的函数建立和使用的

8.手册中的类型:用于说明需要某种类型的数据

mixed:一个参数可以接收多种不同的类型,如果函数需要的形参是两种以上,都会使用mixed

number:可以是int和float

void:作为返回类型意味着函数的返回值是无用的,void作为参数列表意味着函数不接受任何参数

9数据类型的转换

说明:在php 中数据类型是可以进行互相转换的,如整型1转换成字符串’1′

在php中分两种转换形式,:自动转换和强制转换

自动转换

给到特定写法就会改变原来的类型

强制转换

可以使用一些特殊的方式来强制型的改变类型

允许的强制转换的有:

(int),(integer):转换为整型

(bool),(boolean):转化为布尔类型

(float),(double),(real):转换为浮点型

(string):转换为字符串

(array):转换为数组

(object):转换为对象

(unset):转换为null

/**

* @Author: admin

* @Date: 2018-08-16 22:38:26

* @Last Modified by: admin

* @Last Modified time: 2018-08-17 04:29:11

*///

//定义一个十进制的整数的类型

$num1 = 10;

$num2 = 0;

$num3 = -10;

echo $num1."

".$num2."

".$num3;

echo "

";

//定义一个八进制的类型

$num1 = 000;//0

$num2 = 077774;//32764

$num3 = 05555;//2925

echo $num1."

".$num2."

".$num3;

echo "

";

//定义一个十六进制的类型

$num1 = 0x00ff;//255

$num2 = 0xfff;//4095

$num3 = 0x00000;//0

echo $num1."

".$num2."

".$num3;

echo "

";

//查询最大php存储数值

echo PHP_INT_MAX;//最大存储值为2147483647,超过这个值自动转为float型

//查询一个数字占多大位置

$num = 1111111111111111;//超过14位后自动转为科学计数法

var_dump($num);

echo PHP_INT_SIZE;//4

$num = 11111111111;//超过int的取值范围后自动转为float型

var_dump($num);

$num = 1111111111;//没超过int的取值范围是int型

var_dump($num);

//小数浮点型

$num1=1.1;

$num2=0.0;

//小数末尾多个,小数点后面超过最大长度,会自动删除超出部分,最末尾会四舍五入

$num3=1.00000000000000000000000000;

var_dump($num3);

$num3=9.99999999999999999999999999;

var_dump($num3);

$num3=5.55555555555555555555555555;

var_dump($num3);

$num3=4.44444444444444444444444444;

var_dump($num3);

//科学计数

$num=1111111111111111.1;//超过14位自动转为科学计数法

var_dump($num);

$num=1111111111111.1;//没超过14位

var_dump($num);

//不精准体现

$num=floor((0.1+0.7)*10);//floor强制转化成浮点型

var_dump($num);//结果为7二不是8

//bool类型

$true=true;

var_dump($true);

//一般布尔类型会用在控制语句中

if ($num==1) {

echo '真';

} else {

echo '假';

}

echo "";

//class创建一个类,调用对象

$name=null;

$age=0;

Class people{

//属性

var $name;

var $age;

//方法

function run()

{

echo '跑步';

}

}

//创建对象

$zs=new people();

$zs->name='张三';

$zs->age=23;

echo $zs->name;

$zs->run();

//null类型

$a=null;

$b='';//空字符串

if (empty($b)) {

echo '空';

} else {

echo $b;

}

//给函数的形参加默认值

function FunctionName($value='',$b=null)

{

}

FunctionName();

//资源resource 连接数据库

$link= @mysql_connect('127.0.0.1','root','root');

var_dump($link);

//自动转换

$a=1;

$b=2;

$v=$a.$b;//转换为字符串

var_dump($v);

if ($a) {//自动转换为boolean类型

echo '真';

}

//强制转换

$num=1;

var_dump((string)$num);//强制转换为字符串

$str='123';

var_dump((int)$str);//强制转换为整数

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180818A1G5MU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券