1.5 数据类型

基本类型

  1. 整型(integer)
    用来存放整数,PHP_INT_MAX获取整型最大值
    php支持8,10,16进制整数
<?php
$num1=10;  //十进制
$num2=010; //八进制
$num3=0x10; //十六进制

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

进制转换
在这里插入图片描述

列题
PHP提供了进制转换函数

<?php
echo decbin(123),'<br>';        //十进制转二进制
echo bindec(10101010),'<br>';	//二进制转十进制
echo dechex(123),'<br>';		//十进制转1十六进制
echo hexdec('7b'),'<br>';		//十六进制转十进制
echo decoct(123);				//十进制转八进制
?>
  1. 浮点型(float)
    浮点型在内存中保存的是近似值浮点数不能参与比较
    如果浮点数要比较,必须确定比较的位数
<?php
var_dump(0.9==(1-0.1));  //bool(true)
echo '<br>';
var_dump(0.1==(1-0.9));   //bool(fales)
echo '<br>';
var_dump(bccomp(0.1,1-0.9,5)); //比较小数点后面5位      int(0)表示相等
?>

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

  1. 布尔型(boolean)
<?php
var_dump ((bool)  "" );         // bool(false)
 var_dump ((bool)  1 );          // bool(true)
 var_dump ((bool) - 2 );         // bool(true)
 var_dump ((bool)  "foo" );      // bool(true)
 var_dump ((bool)  2.3e5 );      // bool(true)
 var_dump ((bool) array( 12 ));  // bool(true)
 var_dump ((bool) array());    // bool(false)
 var_dump ((bool)  "false" );    // bool(true)
 ?> 
  1. 字符串型
    在PHP中单引号字符串和双引号字符串是有区别的
    单引号字符串是真正的字符串
    双引号字符串要解析字符串中的变量

列题:

<?php
$name='TOc';
echo '我的名字叫$name','<br>';  //我的名字叫$name
echo "我的名字叫$name",'<br>';  //我的名字叫Toc
echo "$name是我的名字",'<br>';  //报错
//{}表示获取变量的值
echo "{
      
      $name}是我的名字",'<br>';//Toc是我的名字
?>

输出特殊字符

<?php
echo '他说:\'你好!\'';   //使用转义字符   (\)
?>

字符串定界符

<?php
echo <<<str
要输出的字符串
str;
?>

复合类型

  1. 数组
    在PHP中数组有两种形式,索引数组和关联数组
  • 索引数组:用整数做下标,默认从0开始,后面依次加一
  • 关联数组: 用字符串做下标,通过=>符号将下标和值关联起来

<?php
//1.数组的声明
$stu=array('tom','berry','ketty');
print_r($stu); //输出整个数组,使用print_r
echo '<hr>';
echo $stu[0],'<br>'; //echo只能输出单个数组
echo $stu[1],'<br>';
echo $stu[2],'<br>';

//2.关联数组
$emp=array('name'=>'李白','sex'=>'男','age'=>18);
print_r($emp);
echo '<hr>';
echo $emp['name'],'<br>';
echo $emp['sex'],'<br>';
echo $emp['age'];
?>

输出结果
在这里插入图片描述
练习:写出数组的下标

    <?php
$array=array(1=>'a','b','c','d');
print_r($array);  //Array ( [1] => a [2] => b [3] => c [4] => d )
echo '<br>';

$array=array('a',2=>'b','c',5=>'d');
print_r($array);  //Array ( [0] => a [2] => b [3] => c [5] => d )
echo '<br>';

$array=array('a','name'=>'b','c',5=>'d');
print_r($array);  //Array ( [0] => a [name] => b [1] => c [5] => d )
echo '<br>';

$array=array(1=>'a',1=>'b',1=>'c','d');
print_r($array); //Array ( [1] => c [2] => d )
?>

短数组语法

$stu=['tom','berry','ketty'];
print_r($stu);
  1. 二维数组
    <?php
$stu=[
	['name'=>'tom','sex'=>'男','age'=>18],
	['name'=>'berry','sex'=>'女','age'=>17]
];
echo '<pre>';
print_r($stu);
?>

//运行结果
Array
(
    [0] => Array
        (
            [name] => tom
            [sex] =>[age] => 18
        )

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

)

  1. 对象
    对象在(面向对象编程)专门讲解

特殊类型

  1. 资源(resource)
    参考PHP手册
  2. null

类型转换

  1. 自动类型转换
    当提供的类型和需要的类型不一致的时候会自动转换
$num=10;
if($num){
    
       //自动将数字转换成布尔型
	echo 'aa';
}else{
    
    
	echo 'bb';
}

echo '20'-10;  //自动将字符串转成数字

  1. 强制类型转换
<?php
 $num1='12';
 var_dump($num1,(int)$num1,(float)$num1);//string(2) "12" int(12) float(12)
?>

其他类型和布尔之间的转换
规则:

  • 数字转换规律:0为false,非0为true
  • 字符串或数组转换规律:0和空false,否则true
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45291045/article/details/108478359
1.5
今日推荐