美文网首页
0.3 PHP 数据类型

0.3 PHP 数据类型

作者: THEyAnJ | 来源:发表于2017-04-20 13:40 被阅读0次

    • 标量类型:int、float、string、bool
    • 复合类型:array、object
    • 特殊类型:null、resource
    标量类型

    • 整数类型 int integer
      1. 十进制:$num=998
      2. 八进制:$num=0567
      3. 十六进制:$0x123
    简写 描述
    dec 十进制
    bin 二进制
    oct 八进制
    hex 十六进制
    • 进制转换:
    • 十进制转换:转换的数据类型为字符串;
       ▪ 十进制转二进制 decbin():$num1=decbin(998)
       ▪ 十进制转八进制 decoct() :$num1=decoct(998)
       ▪ 十进制转十六进制 dechex():$num1=dechex(998)
       ▪ 模拟转换:除以进制数(2、8、16)的余数按倒叙方式重写的结果。
    $a=12;
    12/2=6 ..0
    6/2=3 ..0
    3/2=1 ..1
    1/2=0 ..1
    12的二进制为:1100
    
    • 二进制转换:转换的数据类型为整型;
       ▪ 二进制转十进制 bindec():$n=bindec("10101110")
       ▪ 二进制转八进制 binoct():$n=binoct("10101110")
       ▪ 二进制转十六进制 binhex():$n=binhex("10101110")
       ▪ 模拟进制转换运算:将每位数乘以对应权值,将结果相加;
    $a="10101110";
    0*2¹,1*2²,1*2³....;
    = 128 + 0 + 32 + 0 + 8 + 4 + 2 + 0;
    转换结果为:174
    
    • 八进制转换:转换的数据类型为整型;
       ▪ 八进制转十进制 octdec():$n=octdec("077")
       ▪ 八进制转二进制 octbin():$n=octbin("077")
       ▪ 八进制转十六进制 octhex():$n=octhex("077")
       ▪ 模拟进制转换运算:将每位数乘以对应权值,将结果相加;
    //与二进制运算过程相仿
    $a="077";
    7*8¹,7*8²;
    = 56+ 7;
    转换结果为:63
    
    • 十六进制转换:二进制、八进制相仿;

    • 浮点类型 float double real
      1. 小数点:$num=1.234
      2. 科学记数:$num=1.234E3; //值为 1234; 模拟运算:1.234 * 10³
      3. 科学记数:$num=1234E3; //值为 1234000
      尽管结果是整数,但是也属于浮点类型。

    • 浮点类型的数值精度(模拟二进制):

    $num=0.6;
    0.6*2=1.2    //1
    0.2*2=0.4    //0
    0.4*2=0.8    //0
    0.8*2=1.6    //1
    0.6*2=1.2    //1
    ...死循环...
    结果为:0.1001 1001 1001...
    ——————
    $num2=0.625;
    0.625*2=1.25  //1
    0.25*2=0.5    //0
    0.5*2=1       //1
    结果为:0.101
    
    • 绝大部分小数无法完整转换成二进制,而电脑的运算恰恰是由二进制构成。因此浮点数不适合用来进行比较。
    $n1=6.9;
    if($n1/3==2.3){  // error;
            echo "ok";
    }else{
            echo "error";
    }
    //   在这种情况下通常使用固定精度判断,假设要求 3位小数
    if(round($n1*1000/3)==round(2.3*1000)){  // ok;
            echo "ok";
    }else{
            echo "error";
    }
    
    • 字符串类型 string
      PHP 中有四种表示方式,而且各不相同:
    • 单引号:不能识别变量,方便输出完整的字符;
      可以识别的转义符: \\\ \'
    • 双引号:可以自动识别变量等;
      可以识别的转义符: \\\ \" \n \r \t \$
    • nowdoc (单引号)定界符:适用于输出大段的 HTML、JS代码等;
      1. 结束标示符必须与开始保持一致;
      2. 结束标示符必须在所在行最前面;
      3. 结束标示符所在行只能写标示符和结束分号;
    <?php
    $str=<<< 'shuaige'  //必须加上''
    不解析任何转义;
    $sss \\ \t \n;
    <p>这里有p标签 美女 这里有p标签</p>
    shuaige;  //最前方
    echo "<p>$str</p>";
    ?>
    
    • heredoc (双引号)定界符:起始标识名可以用 " " 或者直接声明。
      1. 结束标示符必须与开始保持一致;
      2. 结束标示符必须在所在行最前面;
    <?php
    $str=<<< meinv    //可直接书写,或加 ""
    与双引号字符串转义相近;
    <p>这里有p标签 美女 这里有p标签</p>
    meinv;
    echo "<p>$str</p>";
    ?>
    
    • 布尔类型 bool boolean
      表达了真值,可以为 TRUE 或 FALSEl,转换规则 参照
    复合类型

    • 数组类型 array
      数组能够在单独的变量名中存储一个或多个值。
    • 在 PHP 中,数组的下标可以使用 整数 或 字符串;
      1. 数字下标常被称为 "索引";
      2. 字符串下标常被称为 "键名";
      3. 还可创建包含一个或多个数组的多维数组;
    • 创建数组:
      ▪ 自动分配索引:
    $arrs=array("美女","帅哥","美哥");
    //自动分配的下标:  0、1、2
    

    ▪ 手动分配索引:

    $a[0]="我才";
    $a[2]="fuck";
    $a[5]=111;
    

    ▪ 创建关联数组:

    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
    // or
    $age['Peter']="35";
    $age['Ben']="37";
    $age['Joe']="43";
    
    • count() 函数:获得数组的长度;
    $arrs=array("美女","帅哥","美哥");
    echo count($arrs);
    
    • 遍历数组:
      ▪ 遍历索引数组:
    $arrs=array("美女","帅哥","美哥");
    $len=count($arrs);
    for($i=0;$i<$len;$i++){
            echo "$arrs[$i]";
            echo "<br/>";
    }
    

    ▪ 遍历关联数组:

    $age=array("张三"=>"998","貂蝉"=>"18","SB"=>"22");
    foreach($age as $i=>$val) {
            echo "Key=" . $i . ", Value=" . $val;
    }
    
    • object 对象类型
      JS 中对象除自己创建,还有内置的 window、location,标签对象;
      PHP 中的对象通常均指自定义创建的对象;
    <?php
    //定义一个类
    class girl{
        public $name="美女";
        public $age=22;
        public function say(){
            echo "hello!";
            echo "我叫".$this->$name;
            echo "今年".$this->age;
        }
    }
    $v=new girl();  //创建一个对象
    $v->name="小花";  //设定名称
    $v->age=18;  //设定年龄
    $v->say();  //调用函数方法
    ?>
    
    特殊类型

    • 资源类型 resource
      指对外部资源的引用,比如数据库、文件、图片;PHP 通过语法(或方式)对其进行操作。

    • 空类型 null
      指计算机编程中的 "概念" 类型,表示没有数据、没有意义。

    类型转换

    • 自动类型转换:是弱类型语言中一个非常方便的特性。
    • if(—数据—):转换为布尔类型;
    • 算术运算符:转换为数值类型;
    • 连接运算符:转换为字符串类型;
    • 比较运算符:转换为布尔、数值类型;
    • 强制类型转换:通过语法让数据转换成指定的类型。
    <?php
    $v1=(int)7.8;
    $v2=(float)$v1;
    echo $v1.",v1的数据类型为".getType($v1)."<br/>";
    echo $v2.",v1的数据类型为".getType($v2);
    
    • 相关的系统函数
    类型 描述
    var_dump() 输出变量的完整信息。
    getType() 获取变量的类型名称,结果返回字符。
    setType() 设置变量的类型:setType($num,"float")
    isset() 用来判断一个变量是否存在。
    empty() 判断一个数据是否为空。
    unset() 删除、销毁一个变量。
    is_xx() 判断一个变量是否为某种数据类型。
    is_int()、is_float()、is_numeric()...... 等等。

    以上详细判断规则可以 参照

    相关文章

      网友评论

          本文标题:0.3 PHP 数据类型

          本文链接:https://www.haomeiwen.com/subject/myfwattx.html