首页 > Web开发 > 详细

PHP数据类型

时间:2020-05-23 00:00:32      阅读:84      评论:0      收藏:0      [点我收藏+]

数据类型有两种:强类型和弱类型

PHP是弱类型

基本类型(标量类型)

1、整型

存整数,PHP_INT_MAX获取整形最大值

PHP支持8、10、16机制的整数

<?php
$num1=10;        //十进制
$num2=010;        //八进制(数字前面加0)
$num3=0x10;        //十六进制(数字前面加0x)

echo $num1,‘<br>‘;        //10
echo $num2,‘<br>‘;        //8
echo $num3;                //16

进制转换

机制缩写单词
十进制 dec decimalist
二进制 bin binary
八进制 oct octonary
十六进制 hex hexdecimalist

 

PHP提供了进制转换函数

echo decbin(123),‘<br>‘;   //十进制转二进制
echo bindec(1111011),‘<br>‘;    //二进制转十进制
echo dechex(123),‘<br>‘;        //十进制转十六进制
echo hexdec(‘7b‘),‘<br>‘;        //十六进制转十进制
echo decoct(123);                //十进制转八进制

2、浮点型

浮点数在内存中保存的是近似值

浮点数不能参与比较

var_dump(0.9==(1-0.1));        //bool(true) 
echo ‘<br>‘;
var_dump(0.1==(1-0.9));        //bool(false) 

如果浮点数要比较,必须确定比较的位数

var_dump(0.9==(1-0.1));        //bool(true) 
echo ‘<br>‘;
var_dump(0.1==(1-0.9));        //bool(false) 
echo ‘<br>‘;
var_dump(bccomp(0.1,1-0.9,5));    //比较小数点后面5位   int(0)   0表示相等

bccomp函数,见手册

提醒:如果一个整数超出了整形的范围,会自动的转成浮点型

 

3、布尔型

不能使用echo 和print输出布尔型,要使用var_dump()输出

$flag=false;
var_dump($flag);    //bool(false) 

4、字符串型

在PHP中单引号字符串和双引号字符串是有区别的

单引号字符串是真正的字符串

双引号字符串要解析字符串中的变量

$name=‘tom‘;
echo ‘我的名字叫$name‘,‘<br>‘;    //我的名字叫$name
echo "我的名字叫$name",‘<br>‘;    //我的名字叫tom

{ }取变量值

$name=‘tom‘;
echo ‘$name是我的名字‘,‘<br>‘;    //$name是我的名字
echo "{$name}是我的名字",‘<br>‘;    //{}表示获取变量的值(tom是我的名字)
echo "${name}是我的名字",‘<br>‘;    //$和{只要挨着一起就可以(tom是我的名字)

输出特殊字符

echo ‘毛主席说:\‘上课不要睡觉\‘‘,‘<br>‘;    //转义字符   毛主席说:‘上课不要睡觉‘
echo ‘文件保存在c:\\‘;   //文件保存在c:\

字符串定界符

1、有<<<开头,后面跟的是标识符
2、字符串定界符的结束符必须顶格写,前面不能有任何的空白字符
3、字符串定界符分为两种,heredoc(双引号),nowdoc(单引号)

复合类型

1、数组

在PHP中数组有两种形式,索引数组和关联数组

索引数组:用整数做下标,默认从0开始,后面依次加一

关联数组:用字符串做下标,通过=>符号将下标和值关联起来

数组的声明

<?php
//1、索引数组的声明
$stu=array(‘tom‘,‘berry‘,‘ketty‘);   //索引数组
print_r($stu);    //输出数组  Array ( [0] => tom [1] => berry [2] => ketty ) 
echo ‘<hr>‘;
echo $stu[0],‘<br>‘;    //tom
echo $stu[1],‘<br>‘;    //berry
echo $stu[2],‘<hr>‘;    //ketty
------------------------------------------
//2、关联数组
$emp=array(‘name‘=>‘李白‘,‘sex‘=>‘男‘,‘age‘=>22);
print_r($emp);    //Array ( [name] => 李白 [sex] => 男 [age] => 22 ) 
echo ‘<hr>‘;
echo $emp[‘name‘],‘<br>‘;    //李白
echo $emp[‘sex‘],‘<br>‘;    //
echo $emp[‘age‘];            //22

数组的下标只能是正整数和字符串-

补充;常见数组下标

$stu[true]=‘tom‘;        //转成1
$stu[false]=‘berry‘;    //转成0
$stu[12.9]=‘aa‘;        //转成12(取整数部分)
$stu[-10]=‘bb‘;            //负数可以做下标
$stu[-12.3]=‘cc‘;        //取负整数
$stu[‘10‘]=‘dd‘;        //字符串数字转成数字
$stu[‘‘]=‘ee‘;            //空字符串也可以做下标
$stu[null]=‘ff‘;        //转成空字符串做下标
print_r($stu);


短数组语法,可以直接通过中括号声明数组

$stu=[‘tom‘,‘berry‘,‘ketty‘];
print_r($stu);  //Array ( [0] => tom [1] => berry [2] => ketty ) 

在PHP7.1中可以支持数组的赋值

//两个数交换
$num1=10;
$num2=20;
[$num1,$num2]=[$num2,$num1];
echo $num1,‘<br>‘,$num2;

二维数组的声明

$stu=[
    [‘name‘=>‘tom‘,‘sex‘=>‘男‘,‘age‘=>22],
    [‘name‘=>‘berry‘,‘sex‘=>‘女‘,‘age‘=>23]
];
echo ‘<pre>‘;
print_r($stu);
//运行结果
Array
(
    [0] => Array
        (
            [name] => tom
            [sex] => 男
            [age] => 22
        )

    [1] => Array
        (
            [name] => berry
            [sex] => 女
            [age] => 23
        )

)

字符串也可以通过数组的方式去调用

echo ‘abc‘[0],‘<br>‘;        //a  
echo ‘abc‘[-1],‘<br>‘;        //c,从右边开始取第一个  7.1开始支持

小结:

1、数组在内存中一段连续的空间

2、如果要保存同一类型的多个数据就使用数组

 

PHP数据类型

原文:https://www.cnblogs.com/ycchao/p/12940173.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!