吾爱乐享
个人学习网站

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

<?php

/**
* @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."<br>".$num2."<br>".$num3;
echo "<br>";
//定义一个八进制的类型
$num1 = 000;//0
$num2 = 077774;//32764
$num3 = 05555;//2925
echo $num1."<br>".$num2."<br>".$num3;
echo "<br>";
//定义一个十六进制的类型
$num1 = 0x00ff;//255
$num2 = 0xfff;//4095
$num3 = 0x00000;//0
echo $num1."<br>".$num2."<br>".$num3;
echo "<br>";

//查询最大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 "<hr>";

//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);//强制转换为整数

赞(1) 打赏
未经允许不得转载:吾爱乐享 » php学习之php的八种数据类型的使用

评论 1

评论前必须登录!

 

  1. #-49

    1234

    吾爱乐享4年前 (2020-06-11)

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏