Skip to content

PHP 数据类型

wenbobao edited this page Nov 23, 2017 · 2 revisions

数据类型

PHP由以下几种数据类型:

  • 字符串
  • 整数
  • 浮点数
  • 逻辑
  • 数组
  • 对象
  • NULL

字符串

<?php 
$x = "Hello world!";
echo $x;
echo "<br>"; 
$x = 'Hello world!';
echo $x;
?>

整型

<?php

// 10进制声明:
$zhengshu = 1000;
echo $zhengshu;

// 8进制声明:以0开始,后面跟0-7的整数
$bajingzhi =  033145;
echo $bajingzhi;

// 16进制声明:以0x开始
$shiliu =  0x6ff;
echo $shiliu;
?>

浮点型

浮点数是有小数点或指数形式的数字。

<?php 
$x = 10.365;
var_dump($x);
echo "<br>"; 
$x = 2.4e3;
var_dump($x);
echo "<br>"; 
$x = 8E-5;
var_dump($x);
?>

var_dump() 是一个函数。向括号()中间插入变量。这个函数,会打印出来数据类型和值

布尔类型

<?php
//声明一个变量(拼音)为布尔
$buer = true;
//导明一个变量(英文)
$bool = false;
?>

数组

数组在一个变量中存储多个值

<?php 
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
?>

对象

对象是存储数据和有关如何处理数据的信息的数据类型。 在 PHP 中,必须明确地声明对象。 首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。 然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:

<?php
class Car
{
  var $color;
  function Car($color="green") {
    $this->color = $color;
  }
  function what_color() {
    return $this->color;
  }
}
?>

NULL 类型

特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。

以下3种情况会产生null类型:

  • 通过变量赋值明确指定为变量的值为NULL
  • 一个变量没有给任何值
  • 使用函数unset()将变量销毁掉
<?php
//声明变量为null
$n = null;
var_dump($n);

//var_dump显示输出变量$meiyou,看看结果是什么?
var_dump($meiyou);

//声明一个变量$iphone的值为字符串的手机
$iphone = '手机';
//unset销毁掉一个变量
unset($iphone);
var_dump($iphone);
?>

empty()可以向括号中间传入一个变量。这个变量的值如果为false或者为null的话,返回true。

<?php

 $apple = null;
 if(empty($apple)){
     echo '执行了真区间,凤姐,我爱你';
 }else{
    echo '执行了假区间,你想凤姐了';
 }
?>

isset()可以向括号中间传入一个或者多个变量,变量与变量间用逗号分开。只要有一个变量为null,则返回false。否则,则返回true。

<?php
$one = 10;
$two = false;
$three = 0;
$four = null;

$result = isset($one , $two , $three , $four);
//执行看看结果,是不是
var_dump($result);

?>

查看和判断数据类型

查看数据类型

  1. gettype(传入一个变量) 能够获得变量的类型
  2. var_dump(传入一个变量) 输出变类型和值
<?php
   //声明一个变量88.8,你可以自己多做几次实验换成其他类型看看$type输出是多少
   $float = 88.8;
   $type = gettype($float);

   echo $type;
?>
<?php

//多换几个类型试试
$str = '你喜欢尊上还是喜欢杀仟陌?';

var_dump($str);
?>

判断数据类型

我们使用is_* 系列函数。 is_types这一系列的函数,来进行判断某个东西是不是某个类型。如果是这个类型返回真,不是这个类型返回假。

  • is_int 是否为整型
  • is_bool 是否为布尔
  • is_float 是否是浮点
  • is_string 是否是字符串
  • is_array 是否是数组
  • is_object 是否是对象
  • is_null 是否为空
  • is_resource 是否为资源
  • is_scalar 是否为标量
  • is_numeric 是否为数值类型
  • is_callable 是否为函数

数据类型的自动转换和强制转换

布尔值的自动类型转换

  1. 整型的0为假,其他整型值全为真
  2. 浮点的0.0,布尔值的假。小数点后只要有一个非零的数值即为真。
  3. 空字符串为假,只要里面有一个空格都算真。
  4. 字符串的0,也将其看作是假。其他的都为真
  5. 空数组也将其视为假,只要里面有一个值,就为真。
  6. 空也为假
  7. 未声明成功的资源也为假

其他类型的自动类型转换

<?php
//布尔变整型参与运算
$fo = true;
$result = $fo + 10;
//$result 结果为整型的11,因为$fo布尔的true变为了1
//如果$fo的值为0
var_dump($result);

//字符串类型
$str = '419不要爱';
$result = $str + 1;
//结果为420。因为将$str变为了整型的419参与运算
//将419放在字符串中间和结尾试试
var_dump($result);
?>

总结:

  1. 布尔值的true参与运算是会变成整型或者浮点的1
  2. 布尔值的false参与运算是会变成整型或者浮点的0
  3. 字符串开始处是整型或浮点类型的字符,会转成对应的类型参与运算

强制类型转换

  1. 用后面的三个函数可以完成类型转换,intval()、floatval()、strval()
  2. 变量前加上()里面写上类型,将它转换后赋值给其他变量
  3. settype(变量,类型) 直接改变量本身

intval()、floatval()、strval()转换

<?php
    $float = 1.23;
    $result = intval($float);
    //看看结果是不是变了?
    var_dump($result);

    //鸭脖子为整型的5
    $yabozi = 5;
    $re = floatval($yabozi);
    var_dump($re);
   
    //定义整型的变量
    $yabozi = 23;
    $bian = strval($yabozi);
    //强制变成字符串试试
    var_dump($bian);
?>

变量前加上()里面写上类型,将它转换后赋值给其他变量

<?php
   //定义一个变量,我们来变化一下试试
   $transfer = 12.8;
   //把浮点变为整型
    $jieguo = (int)$transfer;
    var_dump($jieguo);
    
   //把浮点变为布尔
   $jieguo = (bool) $transfer;
   var_dump($jieguo);

   //把布尔变整型
   $bool = true;
   $jieguo = (int)$bool;
   
    //把浮点变数组
   $fo = 250;
   $jieguo = (array)$fo;
   var_dump($jieguo);

   //其他的操作方式,按照文字总结的规律你来试试
   
?>

settype(变量,类型) 直接改变量本身

<?php
    //定义浮点变为整型
    $fo = 250.18;
   //settype第二个参数是int,你实验的时候要记得第二个参数要为字符串类型
    settype($fo,'int');
    //输出看看结果
    var_dump($fo);
?>