• php面试笔记(2)-php基础知识-常量和数据类型


    本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com

    面试是每一个PHP初学者到PHP程序员必不可少的一步,冷月将为大家对PHP基础知识;JS、JQuery、AJAX;Linux;MySQL;程序设计题;PHP框架;算法、逻辑思维;高并发解决方案等做一个全方位的解析。

    回顾真题

    PHP中字符串可以使用哪三种定义方式以及各自的区别是什么?

    答案:

    1. 单引号
    2. 双引号
    3. heredoc()和newdoc()

    先来看看单引号的使用:

    <?php
    $str1 = 'abc'; // 用单引号定义字符串str
    $str2 = 'def';
    $str3 = $str1.$str2;//两个字符串可以用.来拼接
    ?>
    

    定义字符串的方式很简单,但是要注意几个常考点:

    1. 在单引号中,不能解析变量;
    2. 在单引号中,不能解析转义字符,只能解析单引号和反斜线本身;
    3. 在变量和变量,变量和字符串,字符串和字符串之间可以用 . 来连接。

    再来看看双引号的使用:

    <?php
    $str1 = "abc"; //用双引号定义字符串str
    
    $a = 18;
    $str2 = "小明今年{$a}岁 
    "; //双引号中可以解析变量,和转义字符
    ?>
    

    我们要注意以下几个点:

    1. 双引号可以解析变量,变量可以使用特殊字符和{}包含;
    2. 双引号可以解析所有转义字符;
    3. 双引号也可以在变量和变量,变量和字符串,字符串和字符串之间可以用 . 来连接。

    在来看看heredoc()和newdoc()的使用

    heredoc() 相当于双引号的作用,newdoc()类似于单引号的作用,当在处理大文本或html代码时可以使用,使用格式如下:

    <?php
    echo <<<EOF
            <h1>我的第一个标题</h1>
            <p>我的第一个段落。</p>
    EOF;
    ?>
    // 结束需要独立一行且前后不能空格
    

    考点分析

    主要考察考生对于PHP常量和常用数据类型的理解,只要将本篇文章的内容加以理解,相信在面对此类问题时,可以得心应手。

    常量
    在PHP中可以使用const关键字和define()函数来定义常量。

    <?php
    const ONE_DEMO = "我是常量1"; //常量不用加$符,一般用大写来表示
    
    define("TWO_DEMO","我是常量2"); //第一个参数为常量名,第二个参数是常量值
    ?>
    

    常量值被定义后,在PHP脚本的其他任何地方都不能被修改,不能被删除。

    预定义常量
    在PHP中预定义了许多可能会用到的常量,这一点大家也要有一个了解

    <?php
    echo __FILE__;  //获取当前文件绝对路径 D:xxxxxxxxxxxxindex.php
    echo __LINE__; //显示当前代码在多少行
    echo __DIR__; //获取当前文件所在的目录 D:xxxxxxxxxxxx
    
    function test()
    {
    echo __FUNCTION__; //获取当前方法的名称 test
    }
    
    class test {
         function abc() {
           echo __CLASS__; //获取当前类的名称 test
         }
    }
    (new test)->abc();
    
    echo __NAMESPACE__; //输出当前的命名空间
    ?>
    

    数据类型
    在PHP中数据类型分别为以下几个:
    String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。

    其中,需要注意的是浮点类型不能运用到比较运算中,例如:

    <?php 
    $a = 0.1;
    $b = 0.7;
    if ($a + $b == 0.8)
    {
    	echo "OK";
    }else{
    	echo "ERROR"; //输出ERROR
    }
    ?>
    

    因为在计算机中是用补码进行运算的,而浮点类型在运算中,可以会产生精度的损失,所以计算过程有可能是0.1+ 0.7 = 0.79999 ,损失了0.00001。所以会比较运算符输出false,程序输出ERROR。

    我们还需要了解布尔类型中FALSE的七种情况

    1. 0
    2. 0.0
    3. ''
    4. '0'
    5. false
    6. array()
    7. NULL

    而NULL又有三种情况

    1. 直接将变量赋值为NULL
    2. 未定义的变量
    3. unset()销毁的变量

    最后,我们来了解一下超全局数组

    $GLOBALS
    $GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
    $GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

    $_GET
    $_GET 广泛应用于收集表单数据,在HTML form标签的指定属性:"method="get"。

    $_POST
    $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。

    $_REQUEST
    $_REQUEST 用于收集HTML表单提交的数据。包含get和post

    $_COOKIE
    获取cookie

    $_SESSION
    获取session

    $_SERVER (以下为几个常用的键)
    $_SERVER['SERVER_ADDR']
    当前运行脚本所在的服务器的 IP 地址。
    $_SERVER['SERVER_NAME']
    当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)
    $_SERVER['REQUEST_TIME']
    请求开始时的时间戳。
    $_SERVER['HTTP_REFERER']
    引导用户代理到当前页的前一页的地址(如果存在)。也就是说发起请求的地址。
    $_SERVER['REMOTE_ADDR']
    浏览当前页面的用户的 IP 地址。

    一网打尽

    最后,让我们来看几道真题,一网打尽所学考点

    1.用PHP写出获取客户端IP和服务器IP 的代码

    <?php
    echo $_SERVER['REMOTE_ADDR'];//输出客户端IP地址
    echo $_SERVER['SERVER_ADDR'];//输出服务端IP地址
    ?>
    

    2.__FILE__表示什么意思

    获取当前PHP脚本文件所在绝对路径,例如 D:xxxxxxxxxxxxindex.php

    喜欢冷月的话不妨给本文点一个赞,获取更多面试笔记、编程技巧或开源代码,请关注冷月的公众号:学长冷月
    学长冷月

  • 相关阅读:
    电赛小结
    markdown小结
    一元运算符重载
    二维数组作为函数参数传递剖析(转载)
    C语言内存(转载)
    Effective C++ chapter1:Accustiming Yourself to C++
    C++ 模板
    const
    命令行参数
    AStar算法
  • 原文地址:https://www.cnblogs.com/guoyugy/p/12309611.html
Copyright © 2020-2023  润新知