软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 编程语言 -> php之数据类型 -> 正文阅读
编程语言 最新文章
Java面试题(1)
ReactiveX序列——RxSwift
C++STL之ACM相关知识大全
c++中vector向量几种情况的总结(向量指针,
SSH框架整合demo
JAX
UVA
curl备忘(1)
C#机房重构——万事开头难(二)
OJ刷题

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

  2016-04-03 20:44:50


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取余数,从尾到头取余数

1.2.3 十进制转十六进制


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

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>';


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>';
}



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 结束标识符必须顶格书写后面加个分号独占一行



输出结果:

4.布尔类型 boolean


0 “0” 0.0 空数组 未定义变量 false 都为false
“0.0” 也为真 其他都为真

<?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


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>";



上一篇文章      下一篇文章      查看所有文章
2016-04-03 20:43:25  
360图书馆 论文大全 母婴/育儿 软件开发资料 网页快照 文字转语音 购物精选 软件 美食菜谱 新闻中心 电影下载 小游戏 Chinese Culture
生肖星座解梦 人民的名义 人民的名义在线看 三沣玩客 拍拍 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 天下美图
中国文化英文 多播视频 装修知识库
2017-4-23 22:01:08
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --