软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 编程语言 -> php之数据类型 -> 正文阅读

[编程语言]php之数据类型



php数据类型划分:
基本类型:int , float, string, boolean
复合类型:数组, 对象
其他类型:null resource

1.整数类型

1.1表现形式

  1. 十进制
    0 1 2 3 4 5 6 7 8 9 逢十进一
    如: $dec =123;
  2. 八进制
    0 1 2 3 4 5 6 7 逢八进一
    如:$oct = 065; //以0开始
  3. 十六进制
    0 1 2 3 4 5 6 7 8 9 A B C D E F 逢十六进一
    如:$hex = 0xA8;

1.2 进制转换

1.2.1 十进制转二进制


使用函数 : decbin(数值);
手工计算:数值除2取余数,从尾到头取余数

1.2.2 十进制转八进制


使用函数 : decoct(数值);
手工计算:数值除8取余数,从尾到头取余数
[img]http://img.blog.csdn.net/20160402234013294

1.2.3 十进制转十六进制


使用函数 : dechex(数值);
手工计算:数值除16取余数,从尾到头取余数
[img]http://img.blog.csdn.net/20160402234253717

1.2.4 二进制转十进制


使用函数:bindec(二进制的字符串)

1.2.5 八进制转十进制


使用函数:octdec(八进制的字符串)

1.2.6 十六进制转十进制


使用函数:hexdec(十六进制的字符串)
x进制和十进制的计算公式:
x^0 * 数值 + x^1 * 数值 +x^2 * 数值 + … + x^n * 数值
如:
二进制:1101 转十进制
2^0 * 1+ 2^1* 0+2^2 * 1+2^3 * 1 = 13
<?php

header("content-type:text/html;charset=utf-8");

//十进制
$dec  = 85;
//八进制
$oct = 065;  
//十六进制
$hex  =0xA8;

echo '$dec='.$dec.'<br>';
echo '$oct='.$oct.'<br>';
echo '$hex='.$hex.'<br>';

//十进制转二进制,结果是string类型
$v1 = decbin($dec);
echo '85十进制转二进制:'.$v1.' 类型:'.getType($v1).'<br>';

//十进制转八进制,结果是string类型
$v2 = decoct($dec);
echo '85十进制转八进制:'.$v2.' 类型:'.getType($v2).'<br>';


//十进制转十六进制,结果是string类型
$v3 = dechex($dec);
echo '85十进制转十六进制:'.$v3.' 类型:'.getType($v3).'<br>';

//二进制转十进制
$v4 = bindec("1101");
echo '1101二进制转十进制:'.$v4.' 类型:'.getType($v4).'<br>';

//八进制进制转十进制
$v5 = octdec("065");
echo '065八进制转十进制:'.$v5.' 类型:'.getType($v5).'<br>';

//0xA5十六制转十进制
$v6 = hexdec("0xA5");
echo '0xA5十六制转十进制:'.$v6.' 类型:'.getType($v6).'<br>';

[img]http://img.blog.csdn.net/20160403000154615

1.2.7整数范围

//整数范围 : -2147483647 ~ 2147483647
echo PHP_INT_MAX; //2147483647   ---最大整数
echo '<br>';
$i = PHP_INT_MAX + 1;
//整数运算的结果超出整数的范围后,会自动转换为浮点数
echo $i." 类型:".getType($i).'<br>';//2147483648 类型:double

$min = -2147483647; 

echo $min." 类型:".getType($min).'<br>'; //-2147483647 类型:integer  --最小整数

2.浮点数 float double real


注意:浮点数因为存储的问题,计算机是无法完全精确表达所有小数的,浮点数不能随便进行大小比较。
<?php

header("content-type:text/html;charset=utf-8");
//有小数点的
$f1 = 1.23;
//带E的就是浮点数
$f2 = 1.234E3;
$f3 = 123E3;

echo $f1." f1类型".getType($f1).'<br>';
echo $f2." f2类型".getType($f2).'<br>';
echo $f3." f3类型".getType($f3).'<br>';



//计算机中浮点数因为存储的问题,是无法完全精确表达所有小数的

$f4 = 8.1 / 3;

//这里输出2.7 ,真的是2.7吗?其实是输出时系统给了一个很接近的值而已!
echo "f4 = $f4".'<br>'; 

if($f4 < 2.7)  //这个条件为真
{
  echo "\$f4 < 2.7";//输出 $f4 < 2.7
}

echo '<br>';



//所以浮点数不要直接用来比较大小,我们应该根据实际场景需要的精度进行比较

//比较方式一:乘以10^精度位数  再四舍五入取整
if(round($f4 * 10000) == round(2.7 * 10000))
{
 echo 'f4 == 2.7'.'<br>';
}

//比较方式二:跟一个精度小数比较
if(abs($f4 - 2.7) < 0.0001 )
{
  echo 'f4 == 2.7'.'<br>';
}


[img]http://img.blog.csdn.net/20160403004246787

3.字符串string


字符串有四种形式:
1.单引号字符串
2.双引号字符串
3.单引号界定符字符串 newdoc
4.双引号定界符字符串 heredoc
<?php

header("content-type:text/html;charset=utf-8");
$name = "tom";
//单引号字符串
//单引号和反斜杠要转义,其他都按原样输出,不会解析字符串里面的变量
$s1 = ' \'   单引号要转义<br>  
       "     双引号直接写 <br>  
       $name 直接原样输出<br>  
       \\ 反斜杠要转义<br> ';


echo $s1;
echo '<hr>';


//双引号字符串
$s2 = "' 单引号直接写<br>
       \\ 反斜杠<br>
       \t \n 起作用<br>
       \" 双引号要转义<br>
       $name 会被解析<br>
       {$name}  <br>
       \141 这里输出字母a  141的十进制是97是字母a的 ascii码<br>
       \x61 这里输出字母a  x61的十进制是97是字母a的 ascii码<br>";


echo $s2;
echo '<hr>';

//nowdoc 单引号定界符字符串 没有可以用的转义符
$s3 = <<<'STR'
这里写内容,写什么就是什么<br />
\n \\  \t  <br />
'  " 单引号和双引号直接写就行<br />
$美元符号也直接写<br />
$name 按照原样输出<br />
STR;

echo '<p>'.$s3.'</p>';


echo '<hr>';

//heredoc 双引号字符串界定符
$s4 = <<<STR
' 单引号直接写<br />
" 双引号也直接写<br />
\" 输出\" <br />
\n 换行符是可以的<br />
\t 制表符也行  <br />
\$say 这样写  $  要转义<br />
$name  变量会被解析<br />
\141 输出字母a<br />
\x61 输出字母a
STR;

echo '<p>'.$s4.'</p>';


//注意heredoc 和 newdoc 写法
//1 开始标识符和结束标识符号必须一致
//2 结束标识符必须顶格书写后面加个分号独占一行

[img]http://img.blog.csdn.net/20160403121956981
[img]http://img.blog.csdn.net/20160403121828731
输出结果:
[img]http://img.blog.csdn.net/20160403121815152

4.布尔类型 boolean


0 “0” 0.0 空数组 未定义变量 false 都为false
“0.0” 也为真 其他都为真
[img]http://img.blog.csdn.net/20160403124429209
<?php

header("content-type:text/html;charset=utf-8");
//布尔型只有两种状态的值: true 和  false
//在实际代码中我们常常将一个数据(可能是各种类型)当作一个布尔值来判断

$b1 = 5;


if(100){
  echo '100 <hr>';
}


if($b1){
  echo '$b1 <hr>';
}

$array   = array();

if(!$array)
  echo '$array空数组为false <hr>';
$array2  = array(1,2);

var_dump($array2);
if($array2)
  echo '$array2 数组为true<hr>';


// 0  "0"  0.0 空数组 未定义变量 false  都为false

$b2 = false ;
$b3 = "false";

if(!$b2)
  echo '$b2为false <hr>';


if($b3)
  echo '$b3 为true <hr>';

$b4 = "0"; //注意 "0.0"为真   "0" 为假

if(!$b4)
  echo '$b4 为false <hr>';

$b5;

if(!$b5)
  echo '未定义变量为false'; //Notice: Undefined variable: b5

[img]http://img.blog.csdn.net/20160403124557241

5数组类型 array


数组就是一个集合体,里面能放不同类型的元素。数组的下标可以是数字类型或者字符串类型。
<?php

header("content-type:text/html;charset=utf-8");

$arr1 = array(1,"hello",true,5.88,);

echo "<pre>";
var_dump($arr1);
echo "</pre>";

echo '<hr>';

//foreach 遍历数组
foreach($arr1 as $key => $value){

 echo "key = $key"." value = $value ".getType($value).'<br>';
}

echo '<hr>';
//for循环遍历数组
for($i =0, $len = count($arr1) ; $i < $len ; $i++){

   echo $arr1[$i].'<br>';
}

echo '<hr>';

$arr2 = array();
$arr2[3] = 100;
//数组下标可以是数字
for($i = 0 ;$i < 5 ; $i++){
  $arr2[] = $i;//这里下标是从4开始了
}

echo "<pre>";
var_dump($arr2);
echo "</pre>";


echo '<hr>';

$arr3 = array();
//数组下标可以是字符串
for($i = 0 ;$i < 5 ; $i++){
  $arr3["key".$i] = $i;
}

echo "<pre>";
var_dump($arr3);
echo "</pre>";



echo '<hr>';


//定义了一个嵌套数组
$arr4 = array(
 "name" => "tom",
 "age"  => 20,
 "height" =>175.5,
 "married"=> true,
 0 => "OK",

 "family" =>
   array(
    "father" => "jack",
    "mother" => "marry",
   ),
);

echo "<pre>";
var_dump($arr4);
echo "</pre>";

[img]http://img.blog.csdn.net/20160403165934746
[img]http://img.blog.csdn.net/20160403165945481
......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-04-03 20:43:25  
编程语言 最新文章
Java面试题(1)
ReactiveX序列——RxSwift
C++STL之ACM相关知识大全
c++中vector向量几种情况的总结(向量指针,
SSH框架整合demo
JAX
UVA
curl备忘(1)
C#机房重构——万事开头难(二)
OJ刷题
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年1日历
2018-1-23 4:02:01
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --