美文网首页技术干货
PHP | 变量、标量知识梳理与运用详析

PHP | 变量、标量知识梳理与运用详析

作者: 凌川江雪 | 来源:发表于2019-01-27 19:32 被阅读32次

    1. 变量名定义

    • $变量名的形式定义(即注意以$符号开头标识)
      demo:
    <?php
        $var = "大河之水天上来";
        echo $var;
        
        echo "<br />";
        
        $var = "奔流到海不复还";
        echo $var;
        echo "<br />";
        
        $a = "高堂明镜悲白发";
        echo $a;
        
        echo "<br />";
        
        $a = "朝如青丝暮成雪";
        echo $a;
    ?>
    

    输出:

    大河之水天上来
    奔流到海不复还
    高堂明镜悲白发
    朝如青丝暮成雪
    
    • 变量采取弱变量的机制(变量的类型取决于所赋的变量值)
      var_dump函数可以将变量的数据类型显示出来:
    <?php 
    $var_name = "青莲";
    $n = 3000;
    $c = "1";
    $f = 9.0;
    $l = 300000000000000000;
    $b = ture;
    
    var_dump($var_name);
    var_dump($n);
    var_dump($c);
    var_dump($f);
    var_dump($l);
    var_dump($b);
    
    ?>
    

    输出:

    string(6) "青莲"
    int(3000)
    string(1) "1"
    float(9)
    int(300000000000000000)
    string(4) "ture"
    



    2. 变量名的命名规则

    1. 变量名必须以字母或下划线 _开头,如$_name,$name,$name2等,但是$9name是不对的;

    2. 变量名只能由字母、数字、以及“_”组成,还能包含汉字。如$_qq,$qq308 ,$my_apple,比如$name我等,但是$name*是不对的。

    3. 变量名不允许包含空格。当变量名由多个单词组成,建议使用_进行分隔,即下划线法,
      或者以大写字母开头比如 $myApple,即驼峰命名法)。

    4. PHP中变量名区分大小写,如$my_book$my_Book代表两个不同的变量。

    demo:

    <?php
        $my_book = "小写book";
        $my_BOOK = "大写BOOK";
        $Iam青莲居士 = "李白";
        echo $my_book;
        echo "<br />";
        echo $my_BOOK;
        echo "<br />";
        echo $Iam青莲居士;
        echo "<br />";
    ?>
    



    3. 变量的数据类型

    • 在变量中,由于变量占用的空间单元不一样,也分成几种数据类型;
    • 可以通过使用memory_get_usage()获取当前PHP消耗的内存

    demo:

    <?php 
    echo $m1 = memory_get_usage(); 
    echo "<br />";
    
    $var_string = "123"; 
    echo $m2 = memory_get_usage()-$m1; 
    echo "<br />";
    
    $n = 123;
    echo $m3 = memory_get_usage()-$m1-$m2; 
    echo "<br />";
    
    $f = 123.00; 
    echo $m4 = memory_get_usage()-$m1-$m2-$m3; 
    echo "<br />";
     
    $var_array = array("123");
    echo $m5 = memory_get_usage()-$m1-$m2-$m3-$m4; 
    echo "<br />";
    
    echo $m6 = memory_get_usage(); 
    ?>
    

    运行结果:

    625656
    360
    288
    288
    632
    627368
    

    由结果可见:
    初始化消耗了624056,
    字符串消耗328,
    整型和浮点型都是288,
    数组消耗632;

    注意:根据操作系统、PHP版本以及PHP的运行方式可能输出结果会不同。

    • 在PHP中,支持8种原始数据类型,
      4种标量类型boolean(布尔型),integer(整型),float(浮点型)和string(字符串型)
      2种复合类型array(数组)和object(对象)
      2种特殊类型resource(资源)与空值(null)
      PHP是一门松散类型的语言,不必向PHP声明变量的数据类型,PHP会自动把变量转换为变量值对应的数据类型;

    demo:

    <?php 
     $string = "诗酒剑仙";
     var_dump($string);
     echo "<br />";
     $string = 3000;
     var_dump($string);
     echo "<br />";
    ?>
    

    运行结果:

    string(12) "诗酒剑仙"
    
    int(3000)
    

    由结果可见变量$string的数据类型随赋值的变化而变化。



    4. 标量类型:布尔类型

    布尔类型(boolean)

    • 只有两个值,一个是TRUE,另一个FALSE;
    • 它不区分大小写,”TRUE”和“true”效果一样;
    • 注意:当我们用echo指令输出布尔类型时,
      如果是true则输出的是1
      false什么也不输出
    • 可以使用var_dump(),查看其数据类型。
    <?php 
        $man  = "男";
        $flag = $man == "男";
        
        echo $flag ;
        echo "<br />" ;
        var_dump($flag);
    ?>
    

    运行结果:

    1
    bool(true)
    



    5. 标量类型:整型

    • 类似于常见的整数。可以用十进制、八进制、十六进制指定。

    demo:

    <?php
    $data_int1 = 123;
    echo $data_int1;
    echo "<br />";
    
    $data_int2 = -123;
    echo $data_int2;
    echo "<br />";
    
    $data_int3 = 0123;
    echo $data_int3;
    echo "<br />";
    
    $data_int4 = 0x123;
    echo $data_int4;
    echo "<br />";
    ?>
    

    运行结果:

    123
    -123
    83
    291
    

    八进制的“0123;”等于10进制中的83,
    十六进制的“0x123;”等于10进制的291。



    6. 浮点型(浮点数、双精度数或实数)

    也就是小数,可以用小数点或者科学计数法表示。
    科学计数法可以使用小写的e,也可以使用大写的E
    demo:

    <?php
    $num_float1 = 1.234;    //小数点  
    echo $num_float1;
    echo "<br />";
    
    $num_float2 = 1.2e3;    //科学计数法,小写e  
    echo $num_float2;
    echo "<br />";
    
    $num_float3 = 7.0E-3;     //科学计数法,大写E  
    echo $num_float3;
    echo "<br />";
    ?>
    

    运行结果:

    1.234
    1200
    0.007
    



    7. 标量类型:字符串

    7.1 字符串型可以用三种方法定义:单引号形式、双引号形式和Heredoc结构形式;
    7.2 字符串中包含引号的时候,有以下几种解决方案:

    a. 在单引号嵌入双引号
    b. 在双引号嵌入单引号
    c. 使用转义符\
    demo:

    <?php 
    $str_string1 = '"向晚意不适,"';//单引号中嵌入双引号
    $str_string2 = "'驱车登古原。'";//双引号中嵌入单引号
    $str_string3 = '\'夕阳无限好,\'';//转义符
    $str_string4 = "\"只是近黄昏。\"";
    echo $str_string1;
    echo "<br />";
    echo $str_string2;
    echo "<br />";
    echo $str_string3;
    echo "<br />";
    echo $str_string4;
    echo "<br />";
    ?>
    

    输出结果:

    "向晚意不适,"
    '驱车登古原。'
    '夕阳无限好,'
    "只是近黄昏。"
    
    7.3 当引号遇到美元符号标识符

    双引号中包含变量时,变量所指向的内容会与双引号中其他内容连接成一个字符串输出;
    单引号中包含变量时,变量会被连同$被当做普通字符串输出。

    demo:

    <?php 
    $love = "俱怀逸兴壮思飞!"; 
    $string1 = "$love ,欲上青天揽明月!";
    $string2 = '$love ,欲上青天揽明月!';
    echo $string1;
    echo "<br />";
    echo $string2;
    ?>
    

    运行结果:

    俱怀逸兴壮思飞! ,欲上青天揽明月!
    $love ,欲上青天揽明月!
    
    7.4 当所需输入的字符串很长
    • 可以使用Heredoc结构形式解决;
      a. 首先使用定界符(<<<)表示字符串;
      b. 接着在<<<之后提供一个标识符
      标识符可以自己随意定制一个特定的字符串,如待会儿例子中的LiTaiBai);
      c. 然后编写长段字符串
      d. 最后以提供/定制的这个标识符结束字符串。
      e. 首位的标识符必须是一样的;
      f. 在结尾的一行一定要另起一行,并且此行除了标识符,并以号结束之外,不能有任何其他字符,
      前后都不能有,空格也不行!否则会出现错误

    demo:

    <?php 
    $string1 = <<<LiTaiBai
    弃我去者,昨日之日不可留;
    乱我心者,今日之日多烦忧。
    长风万里送秋雁,对此可以酣高楼。
    蓬莱文章建安骨,中间小谢又清发。
    俱怀逸兴壮思飞,欲上青天览明月。
    抽刀断水水更流,举杯消愁愁更愁。
    人生在世不称意,明朝散发弄扁舟。
    LiTaiBai;
    
    echo $string1;
    ?>
    

    输出结果:

    弃我去者,昨日之日不可留;
    乱我心者,今日之日多烦忧。
    长风万里送秋雁,对此可以酣高楼。
    蓬莱文章建安骨,中间小谢又清发。
    俱怀逸兴壮思飞,欲上青天览明月。
    抽刀断水水更流,举杯消愁愁更愁。
    人生在世不称意,明朝散发弄扁舟。
    



    8. 第一种特殊类型:资源(resource)

    • 资源是由专门的函数建立和使用的,例如打开文件、数据连接、图形画布
    • 可以对资源进行操作(创建、使用和释放)。
    • 任何资源,在不需要的时候应该被及时释放
    • 如果忘记释放资源,系统自动启用垃圾回收机制,在页面执行完毕后回收资源,以避免内存被消耗殆尽

    demo:

    <?php
    $file=fopen("f.txt","r");   //打开文件
    $con=mysql_connect("localhost","root","root");  //连接数据库
    $img=imagecreate(100,100);//图形画布
    ?>
    

    下面是读取一个服务器文件的参考模板:

    <?php 
    //首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
    $file_handle = fopen("/data/webroot/ressource/php/f.txt","r");
    if ($file_handle){
        //接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
        while (!feof($file_handle)) { //判断是否到最后一行
            $line = fgets($file_handle); //读取一行文本
            echo $line; //输出一行文本
            echo "<br />"; //换行
        }
    }
    fclose($file_handle);//关闭文件
    ?>
    



    9. 第二种特殊类型:空类型

    • NULL是空类型,对大小写不敏感
      NULL类型只有一个取值,表示一个变量没有值

    以下三种情况下变量便被认为是NULL/空值:

    • 被赋值为NULL
    • 尚未赋值
    • unset()(注销变量的定义)

    demo:

    <?php 
     error_reporting(0); //禁止显示PHP警告提示
     $var;
     var_dump($var);
     
     $var1 = null;
     var_dump($var1);
     
     $var2 = NULL;
     var_dump( $var2);
     
     $var3 = "节日快乐!";
     unset($var3);//变量“$var3”被注销定义
     var_dump($var3);
    ?>
    

    运行结果:

    NULL
    NULL
    NULL
    NULL
    



    参考资料(慕课网)

    相关文章

      网友评论

        本文标题:PHP | 变量、标量知识梳理与运用详析

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