美文网首页
PHP -- 数据类型

PHP -- 数据类型

作者: 潘肚饿兵哥哥 | 来源:发表于2019-06-28 19:17 被阅读0次

    \color{rgba(254, 67, 101, .8)}{数据类型:}

    • \color{rgba(3, 101, 100, .8)}{基本数据类型(标量):整数(int)、小数、浮点数(float)、字符串(string)、布尔型(boolean)}
    • \color{rgba(3, 101, 100, .8)}{复合数据类型: 数组(array)、对象(object)}
    • \color{rgba(3, 101, 100, .8)}{其他数据类型 空(null)、资源(resource)}
     $x = 123; //这是十进制,输出显示:  123
    $x = 0123; //这是八进制,输出显示:  83
       
    进制换算:
    个位*进制的0次方(任何数的0次方都是1) + 十位*进制的一次方 + 百位 * 进制的二次方
    
    3 + 20 + 100 = 123   十进制
    3 + 16 + 64 = 83   八进制
    3 + 32 + 256 = 291  十六进制
    
    echo PHP_INT_MAX;  输出最大值  2147483647
    但是输出2147483648,他比最大值还要大,也同样能输出,虽然看起来是一个整数,但是2147483648这个数已经不是整型了,
    
     $a = 2147483648;
        echo gettype($a);  //获取类型
    返回值:
    double
    这是一个浮点型
    double是浮点型里的双精度
    浮点型有单精度和双精度,在php里都叫浮点型
    

    \color{rgba(254, 67, 101, .8)}{单精度是这样的格式,1位符号,8位指数,23位小数}

    image.png

    \color{rgba(254, 67, 101, .8)}{双精度是1位符号,11位指数,52位小数}

    image.png

    \color{rgba(254, 67, 101, .8)}{32位浮点数就是单精度}

    \color{rgba(254, 67, 101, .8)}{64位浮点数就是双精度}

    \color{rgba(254, 67, 101, .8)}{如果想用单引号套单引号,或双引号套双引号,就要用转义符号}

    $str = 'Tom\'s Dog';
         echo  $str;
    
    image.png

    浏览器不认识\n换行,只认识
    ,出现\n浏览器会用空格代替。

     $str = "Tom's D\nog";
         echo $str;
    
    
    $str = "Tom's D<br/>og";
         echo $str;
    

    \n\t:

    image.png

    <br/>:

    image.png

    \color{rgba(254, 67, 101, .8)}{字符串:}
    \color{rgba(254, 67, 101, .8)}{1. 单引号}
    \color{rgba(254, 67, 101, .8)}{2.双引号:单双引号定义变量有区别}
    \color{rgba(254, 67, 101, .8)}{3.heredoc: 相当于双引号,结束标记必须顶格写,且独占一行,后面除了分号,什么都不能写}
    \color{rgba(254, 67, 101, .8)}{4.nowdoc:相当于单引号,跟heredoc一样的用法,只是在给第一个name加一个单引号(双引号也没有报错)}

    单双引号:

    $name = 'Tom';
         $str = "Hello$name";
         echo $str; 
    
    image.png

    如果是这样写:都用单引号的情况:

     $name = 'Tom';
         $str = 'Hel\nlo$name';
         echo $str; 
    

    就不会解析,还是按照代码输出来:都用单引号的情况:
    这里如果外面包裹的是双引号,\n就不会输出,而是显示空格


    tom用双引号,hello用单引号也是不会解析:

    $name = "Tom";
         $str = 'Hel\nlo$name';
         echo $str; 
    
    image.png

    但是如果tom用单引号,hello用双引号,又会被解析:

    $name = 'Tom';
         $str = "He\nllo,$name";
         echo $str; 
    
    image.png

    \color{rgba(254, 67, 101, .8)}{单双引号总结:}
    \color{rgba(254, 67, 101, .8)}{单引号:php不会读取里面的变量;作为纯字符串处理,读取速度快;}

    \color{rgba(254, 67, 101, .8)}{双引号:php会尝试读取里面的变量(即使里面没有),这样读取速度慢;heredoc相当于双引号}

    \color{rgba(254, 67, 101, .8)}{所以,如果有变量,就用双引号,没有变量,就用单引号,nowdoc相当于双单引号}

    \color{rgba(254, 67, 101, .8)}{heredoc用法:}
    \color{rgba(3, 101, 100, .8)}{如果要输出的是大段的带单双引号的字符串,用单引号和双引号都不行,就可以用下面这个方法:}

    $str = <<<name
        code...
    name;
    
    //以<<<开头,name是自己取的名字,后面再跟自己取的名字表示代码段结束,后面跟的这个代码段名字要顶格写,最后分号
    //如:
    $str = <<< name
         <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
        <h1 class="h1">hello</h1>
        <h2 class="h2">hello</h2>
        <p class="text">hello</p>
    </body>
    </html>
    name;
    echo $str;
    ?>
    

    nowdoc的用法,和heredoc相比只多了一个引号,其他的完全相同,显示出来的结果也一样。

    heredoc:
    $str = <<< name
    
    name;
    
    nowdoc:
    $str = <<< 'name'
    
    name;
    

    \color{rgba(254, 67, 101, .8)}{布尔型:}

    $bool = 7;
        if($bool){
            echo '真';
        }else{
            echo '假';
        }
    php: bool为0和false时为假,0.0也是假,其他时候是真,00也是真,也不是假
    
    
    
    javascript:
    只有bool =true  和  1 时输出真,其他为假
    <script type="text/javascript">
        var bool = 3;
        if(bool == true){
            alert("真");
        }else{
            alert("假");
        }
    </script>
    
    
    空字符串是假,其他时候都是真
      $bool = '';
        if($bool){
            echo '真';
        }else{
            echo '假';
        }
    
    
    null也是假:
    $bool = null;
        if($bool){
            echo '真';
        }else{
            echo '假';
        }
    

    \color{rgba(254, 67, 101, .8)}{当转换为 boolean时,以下值被认为是 False:}

    • \color{rgba(3, 101, 100, .8)}{布尔值 False本身}
    • \color{rgba(3, 101, 100, .8)}{整型值 0(零)}
    • \color{rgba(3, 101, 100, .8)}{浮点型值 0.0(零)}
    • \color{rgba(3, 101, 100, .8)}{空字符串 以及字符串"0"}
    • \color{rgba(3, 101, 100, .8)}{不包括任何元素的数组}
    • \color{rgba(3, 101, 100, .8)}{从空标记生成的 SimpleXML对象}

    \color{rgba(254, 67, 101, .8)}{所有其它值都被认为是 True(包括任何资源和NAN) }

    相关文章

      网友评论

          本文标题:PHP -- 数据类型

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