字符串类型: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);//强制转换为整数
领取专属 10元无门槛券
私享最新 技术干货