• php数据类型


    PHP数据类型

    PHP支持八种原始的数据类型

    布尔型

    /*
     * boolean:TRUE FALSE
     * 以下值被认为是FALSE:
     * 布尔值FALSE本身
     * 整型值0(零)
     * 浮点型0.0(零)
     * 空字符串,以及字符串"0"
     * 不包含任何元素的数组
     * 特殊类型NULL(包括尚未赋值的变量)
     * ---所有其他值都被认为是TRUE
    */
    $foo = true;
    echo "foo的值是:$foo"."
    ";
    
    if ($foo){
        echo "foo是真值"."
    ";
    }
    else{
        echo "foo是假值"."
    ";
    }
    

    整型

    /*
     * Integer 整型,可以十进制、十六进制(0x)、八进制(0)、二进制(0b)
     * php不支持无符号整数,即php中的整数都是有符号的,最大的整数为PHP_INT_MAX
     * 注:如果给定一个数超出了integer的范围,将会被解释成float,同样如果执行的运算结果超出了integer范围,也会返回float
    */
    //PHP中没有整除运算符,1/2会产生float 0.5。
    echo 1/2;
    echo "
    ";
    echo (integer)(1/2);  //integer强制转换为整型(去尾法)
    echo "
    ";
    echo round(1/2);  //round()四舍五入
    echo "
    ";
    //当从浮点型转换成整数时,将向下取整数(去尾法)
    echo (integer)0.8;  //输出:0
    echo "
    ";
    

    浮点型

    /*
     * Float:浮点数
     * 永远不要直接比较两个浮点数是否相等
     * 要测试浮点数是否相等,要使用一个仅比该数值大一丁点的最小误差值。
    */
    $a = 1.234;
    $b = 1.235;
    echo "
    ";
    

    字符串

    /*
     * string:字符串
     * 一个string就是由一系列的字符组成,每个字符等同与一个字节。
     * string可以用4中方式表达:
     * 单引号:单引号内的字符串中的变量和特殊字符的转义序列不会被替换。
     * 双引号:会对变量和转义字符进行替换。
     * heredoc结构:
     * nowdoc结构
     *
     * 字符串细节:
     * 一个字符串就是由一系列的字符组成,因此:
     * 一个字母         占一个字节
     * 一个数字         占一个字节
     * 汉字(gbk/gb2312) 占两个字节
     * 汉字(utf-8)      占三个字节
     */
    
    //heredoc格式
    /*
     * 使用注意:
     * 1. <<<固定 AAA名称可以变化,一般来说全部大写
     * 2. <<<标识符 后面不能带任何内容,包括空格
     * 3. 结束的标识符前面不能有空格
     * 4. heredoc可以解析变量和转义字符
     */
    $str = <<<AAA
    FDSAJFKLDASJFKLD;AJF;DASJFK;DASKF
    JD;KLSAFJKDLS;ANFDSAJFLKDS;A
    AAA;
    echo $str;
    

    数组

    /* Array:PHP中的数组是一个有序映射,映射是一种把values关联到keys的类型。 
     * -->array可以接受任意数量用逗号分割的健值对。
     * PHP可以同时包含integer和string类型的键名。
     * key:可以是一个整数integer或字符串string。
     * value:可以是任意类型的值。
     *
     * 1. 包含有合法整型值的字符串会被转换为整型(如"8"会被转换为8,但是"08"不能转换为8)
     * 2. 浮点数会被转换为整型,意味着小数部分会被舍去。
     * 3. 布尔值会被转换为整型。
     * 4. NULL会被转换为空字符串,即""。
     * 5. 数组和对应不能被用为键名。
     *
     * 如果数组定义中多个单元都用了同一个键名,则只会使用最后一个,之前其他的都会被覆盖。
    */
    echo "
    ";
    $arr1 = array(
        "key1" => "value1",
        "key2" => "value2"
    );
    var_dump($arr1);
    
    echo "
    ";
    $arr2 = array(
        1 => "a",
        2.2 => "b",
        true => "c"  //会对之前key为1的进行覆盖
    );
    
    //echo $arr2; echo不能直接对数组进行输出
    var_dump($arr2);
    echo "
    ";
    
    //如果对给出的值没有指定键名,则取当前最大的整数索引值,则新的键名将是该值+1,如果指定的键名已经有值,则该值会被覆盖。
    //所以key为可选项,如果未指定,PHP将自动使用之前用过的最大的integer键名+1作为新键名,最小值为0,如果当前还没有整数索引,键名为0
    $arr2[] = 4;
    var_dump($arr2);
    echo "
    ";
    
    $arr3 = array(
        "a",  //键值为0
        "b",  //键值为1
        6 => "c",
        "d"   //键值为7
    );
    var_dump($arr3);
    echo "
    ";
    
    //访问数组:可以用array[key]语法访问,也可以使用array{key}
    $arr4 = array(
        "key1" => "value1",
        "key2" => "value2"
    );
    var_dump($arr4["key1"]);
    echo "
    ";
    var_dump($arr4{"key1"});
    echo "
    ";
    
    $arr5 = array(5 =>1, 4 => 2);  //数组的创建
    var_dump($arr5);
    echo "
    ";
    
    $arr5[] = 3;  //添加一个新的key-value对
    var_dump($arr5);
    echo "
    ";
    
    $arr5["x"] = 5;  //如果x存在,则覆盖value,如果不存在,添加
    var_dump($arr5);
    echo "
    ";
    
    unset($arr5[4]);  //移除该键值对
    var_dump($arr5);
    echo "
    ";
    
    unset($arr5);  //移除整个数组
    //            var_dump($arr5);
    echo "
    ";
    
    //注意:这里所使用的最大整数键名不一定就是当前数组中,它只要在上次数组重新生成索引后曾经存在过就行了。
    $arr6 = array(1, 2, 3, 4, 5, 6);
    print_r($arr6);
    echo "
    ";
    foreach ($arr6 as $i => $value){  //遍历数组,移除所有元素
    //                echo $value;
    //                echo "<br/>";
        unset($arr6[$i]);
    }
    print_r($arr6);  //此时数组为空
    echo "
    ";
    
    $arr6[] = 9;  //此时添加一个key-value(注意键名为6,不为0)
    print_r($arr6);
    echo "
    ";
    
    $arr6 = array_values($arr6);  //重新索引
    $arr6[] = 10;  //此时key为1,上一个key为0
    print_r($arr6);
    echo "
    ";
    
    //unset()函数允许删除数组中的某个键值对,但不会重新索引排序,如果需要删除后重建索引,可以用array_value()函数
    //foreach as 控制结构专门用于数组的,它提供了一个简单的方法来遍历数组
    
    //对于任意integer,float,string,boolean类型,如果将一个值转换为只有一个元素的数组(下标为0)
    $var = "你好";
    printf("%s", $var);
    //            var_dump(array($var));
    echo "
    ";
    

    对象

    /*
     *Object:对象,要创建一个新的对象object,使用new语句实例化一个类。
     *
    */
    class Foo
    {
        function  do_foo()
        {
            echo "doing foo.."."
    ";
        }
    }
    
    $bar = new Foo();
    $bar -> do_foo();
    

    资源和null

    /*
     * Resource资源类型:是一种特殊变量,保存了到外部资源的一个引用。
     *
     * NULL:表示一个变量没有值。
     * is_null():判断一个变量是否为NULL。
     * unset():移除。
     * 一个变量被认为NULL三种情况:
     * 被赋值为NULL。
     * 尚未被赋值。
     * 被unset()。
     *
     * mixed:说明一个参数可以接受多种不同的(但不一定是所有的)类型。
     *
     */
  • 相关阅读:
    js 字符串indexOf方法封装
    js 冒泡排序
    CSS定位 position的三个属性 elative 、absolute、fixed :
    让父元素能感知浮动的子元素 #用伪元素清除浮动
    三个路由器的连接,中间路由的配置(静态路由)
    IDEA 添加tomcat出错: Error: Environment variable name is not set 我的解决方法
    通过基于AspectJ 注解的方式实现Spring AOP报 can't find referenced pointcut myPointCut 错误,我的解决方法
    C语言fopen函数打开文本文件与二进制文件的区别
    位运算的奇技淫巧 系列1
    位运算例子(以后会逐渐补充)
  • 原文地址:https://www.cnblogs.com/jackw1/p/12580396.html
Copyright © 2020-2023  润新知