• (一)PHP基础知识考察点


    1,PHP引用变量的考察点:

      概念:引用就是用不同的名字访问同一个变量内容。

      定义方式: 使用&符号。

    • PHP引用变量的工作原理 

      这里有个COW  copy on write  用zval()去查看空间占用情况以及引用情况。

    •  unset  只用取消引用不会销毁 
    •  当引用变量的值被改变,那么原空间的值也随之改变
    • 对象本身就是引用引用传递

    2,常量及数据类型

    1. 字符串的定义方式和区别

        定义方式:单引号,双引号,heredoc 和 newdoc

        单引号:单引号不能解析变量;单引号不能解析转义字符,只能解析单引号和反斜线本身;变量和变量,变量和字符串、字符串和字符串之间可以用.点来连接;

        双引号:双引号可以解析变量,变量可以使用特殊字符和{}包含;可以解析所有的转义字符;也可以使用点来连接;

        单引号的效率高于单引号;

       2.数据类型(八大数据类型)

        (1)浮点类型(不能用于精确的相等的计算)

        (2)布尔类型  false 的7种情况

            整型0,浮点0.0,空字符串' ',0字符串‘0’,布尔false,空数组array(),NULL

        (3)数组 

           超全局数组 

    $_GET[] 获得以GET方法提交的变量数组

    $_POST[] 获得以POST方法提交的变量数组

    $_COOKIE[] 获取和设置当前网站的Cookie标识

    $_SESSION[] 取得当前用户访问的唯一标识,以数组形式体现,如sessionid以及自定义session数据

    $_ENV[] 当前php环境变量数组

    $_SERVER[] 当前php服务器变量数组   (列举常考的点)

      1. $_SERVER[‘SERVER_ADDR’] 当前运行脚本所在的服务器的 IP 地址。
      2. $_SERVER['SERVER_NAME']当前运行脚本所在的服务器的主机名
      3. $_SERVER['REQUEST_TIME']请求开始时的时间戳
      4. $_SERVER['QUERY_STRING']query string(查询字符串),如果有的话,通过它进行页面访问
      5. $_SERVER['HTTP_REFERER'] -- 链接到当前页面的前一页面的 URL 地址。
      6. $_SERVER['HTTP_USER_AGENT'] -- 返回用户使用的浏览器信息。也可以使用 get_browser() 得到此信息。
      7. $_SERVER['HTTP_USER_AGENT'] -- 返回用户使用的浏览器信息。也可以使用 get_browser() 得到此信息。
      8. $_SERVER['REQUEST_URI'] -- 访问此页面所需的 URI。例如,“/index.html”

    $_FILES[] 上传文件时提交到当前脚本的参数值,以数组形式体现

    $_REQUEST[] 包含当前脚本提交的全部请求,$_GET、$_POST、$_COOKIE的所有动作 $GLOBALS[] 包含正在执行脚本所有超级全局变量的引用内容

    (3)NULL 三种情况

      • 直接赋值为NULL
      • 未定义的变量为NULL
      • unset销毁的变量为NUll

      常量

         定义常量 。const 、define,const更快因为是语言结构,define是函数;const 可以定义类的常量,define不行;

        预定义常量:

    __LINE__ 文件中的当前行号 __FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

    __DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

    __FUNCTION__ 函数名称(PHP 4.3.0 新加)。

    __CLASS__ 类的名称

    __TRAIT__ Trait 的名字

    __METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

    __NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

    3、PHP中运算符

      错误控制符  @放在一个PHP表达式前,该表达式产生的任何错误信息都会有被忽略掉

      运算符的优先级  (常用列举,具体查看运算符优先级表)

        递增/递减>!>算数运算符>大小比较>(不)相等比较>引用>位运算符(^)>位运算符(|)>逻辑与>逻辑或>三目>赋值>and>xor>or

      括号的使用可以增加代码的可读性,推荐使用

        比较运算符 

          ==和===的区别    双等 是值相等 三等是要求值和属性都相等

        递增递减运算符

          递增递减运算不影响布尔值

          递减NULL值没有效果

          递增NULL 值为一

          递增递减在前就先运算后返回,反之就是先返回后运算

        逻辑运算符  

          短路作用  如  $b==false && $a==1 

          || && or and  的优先级不同  如$a = false or true;返回时or; $a = false || true; 返回时true;

    4、PHP中流程控制考点  

      PHP遍历数组的三种方式以及各自的区别

      for,foreach,while/list()/echo()组合循环  

        for循环只能遍历索引数组foreach可以遍历索引和关联数组,while和list(),echo()也同样可以。

        foreach遍历会对数组进行reset()操作; 

      if....elseif
           只能有一个表达式为true,既在一个ifelse语句中只能有一个语句块被执行,多个elseif从句是排斥关系,使用elseif语句有一个原则总把条件范围小的优先放在前面处理  

      switch....case 表达式后面的控制表达式的数据类型只能是整型,字符串,和浮点型;
       continue的作用相当于break,跳出switch 外的循环可以使用continue2
         会生成跳转表,直接跳到对用的case
         效率  如果条件比一个简单的语句复杂的多,或者在多个循环中 switch...case 会更快

    5.自定义函数和内部函数的考点
        变量的作用域和静态变量    
          变量的作用域也称变量的范围,变量的范围就是它上下文的一个背景 ,大部分PHP变量只有一个单独的范围。这个单独的范围跨度同样包含了include和require的引入文件
            golbal关键字
            $GOLBALS以及其超全局数组($_GET,$_POST,$_COOKIE)
        静态变量
            静态变量只在局部函数域中存在,但当程序执行离开此作用域时,其值并不会消失。
            static 关键字 的特点
                1,只初始化一次
                2,初始化时需要赋值    
                3,每次执行函数该值会被保留
                4,static修饰的变量时局部的只在函数内部有效
                5,可以记录函数调用的次数,从而在某种条件下起到终止递归
        函数的参数
            默认情况下,函数通过进行传递,
            如果希望允许修改函数的值,必须通过引用(&)传递参数
        函数的返回值
            值通过使用可选的返回语句return返回
            可以返回包括数组对象的任意类型
            返回语句会终止函数执行,并将控制权交个函数调用处
            省略人return,返回值为null,并且不支持返回多个返回值
        函数的引用返回值
            从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符&
        外部文件的导入
            incloud/require语句包含并运行指定文件
            如果给出路径就安路径查找,否则就从incloud_path中查找,如果incloud_path 中也没有就会从所调用的脚本的所在目录和当前工作目录下寻找
            当一个文件被包含的时候,其中所包含的代码继承了incloud的所在行的变量范围


            价值过程中文找到文件,incloud会发出一条警告,require会报出致命的错误
            require在出错是产生E_COMPILE_ERROR级别的错误。换句话说脚本将会终止,incloud只是发出了警告,脚本继续执行

            incloud_once(require_once)/incloud(require)的唯一区别,就是PHP会检查文件是否被包含过,如果有就不在被包含
        系统内置的函数
            时间日期函数
                date(),strtotime(),mktime(),time(),microtime().date_default_timezone_set()
            IP处理函数
                iptolong()、longtoip()
            打印处理
                print(),printf(),print_r(),echo,sprintf(),var_dump(),var_export()
            序列化以及反序列化函数
            serialize(),unserialize()
            字符串函数
                explode(),implode(),join(),strrev(),trim(),ltrim(),rtrim(),strstr(),number_format()...
            数组处理函数
                array_keys(),array_values(),arrdiff(),array_intersect(),array_merge(),array_shift(),array_unshigft(),array_pop(),array_push(),sort(),

    6.正则表达式
    /*正则表达式的作用 分割 查找 匹配 替换字符串;
    *分隔符:正斜线('/'),hash符号的#,以及去反的符号~
    * 通用原子:/d,十进制的0~9
    * /D,取反
    *
    * /w,数字,字母下,划线
    * /W,取反
    * /s,空白符
    * /S除了空白符
    * 元符号:. 除了换行符的任意字符
    * *匹配前面的字符出现零次,1次,或者多次
    * ?0次或者一次
    * ^ 必须以他开头
    * $ 必须以他结尾
    * + 出现一次或者多次
    * {n}恰巧出现n次
    * {n,}大于等于n次
    * {n,m}大于n小于等于m
    * [ ] 一个集合
    * ()代表互相引用或者当成一个整体
    * 【^】代表取反
    * | 或者
    * 【-】代表的是一个范围
    * 模式修正符:
    * i不区分大小写
    * m将字符串字通过分割符进行一个分割,增添到字符串的每一行分别进行匹配
    * e
    * s修正点的换行
    * U 取消他的模式
    * x 忽略模式中的空白符
    * A 必须以这种模式开头
    * D 修正 $对 反斜线的忽略
    * u 当我做一个utf-8的中文时 用到
    * 后向引用
    *
    *
    * 贪婪模式
    *
    *
    *
    * */

    文件以及目录操作
    * 文件的读取/写入操作
    * fopen()函数
    * 用来打开一个文件,打开时需要指定打开的方式
    * 打开模式: r/r+ 用只读方式打开并且将文件指针指到文件的开头/用读写的方式打开并且将文件指针指到文件的开头
    * w/w+用写入方式打开将文件指针指到文件的开头,并且将文件的大小结尾零(清空你的文件)/用读写的方式打开并且将文件指针指到文件的开头 并且将文件的大小结尾零(清空你的文件)
    * w要是文件不存在就会先创建文件
    * a/a+ 追加的写入方式将文件指针指到文件的末尾 /读写方式 文件不存在就会先创建文件
    * x/x+ b t
    * 读取函数 fread() fgets() 获取一行 fgetc()获取一个字符
    * 关闭函数 fclose()
    * 不需要fopen()打开的函数 file_get_contents() file_put_contents()
    * 其他的读取函数 file() readfile()
    * 访问远程文件 开启allow_url_fopen ,HTTP协议连接只能使用只读,FTP协议可以使用只读或者只写
    * 目录相关的操作函数
    * 名称相关:basename(),dirname(),pathinfo();
    * 目录读取:Opendir(),reddir(),closedir(),rewinddir()
    * 删除目录:rmdir() 该目录为空才能删除 否则删除不了
    * 创建目录: mkdir()
    * 文件大小:fileSize()进行获取
    * 目录大小:disk_free_space()磁盘大小:剩余空间 disk_total_space() 总共的大小
    * 文件拷贝:copy()
    * 删除文件: unlink()
    * 文件类型:filetype()进行获取
    * 重命名文件或者目录:rename()不光可以重命名而且可以移动文件目录
    * 文件的截取:ftruncate() 截取到指定的大小
    * 文件的属性:file_exists()判断文件时候存在
    * is_readable()是否可读
    * is_writtable()是否可写
    * is_executable()是否可执行
    * filectime()文件的修改时间
    * fileatime()文件的访问的时间
    * filemtime()整个的一个修改时间
    * 文件锁:flock()
    * 文件指针:ftell() fseek() rewind()
    *
    * */
    /**
    * 会话技术
    * cookie 是存储在客户端的文件
    * setcookie($namn键,$value值,$exprie过期时间,$path路径, $domain域名,$secure安全)
    * $_COOKIE
    * 删除cookie
    * setcookie($name,'',time()-1000);
    * cookie 的优缺点
    * 优点 它在客户端存在不会浪费服务器资源,效率会高一些
    * 缺点 由于他在客户端存储 不建议将一些敏感的信息存储在cookie中,而且用户有权限禁止COOKIR的使用
    *
    *sesstion 存储在服务器 它基于cookie
    * sesstion_start()开启sesstion()
    * $_SEESSTION
    * $_SESSTION=[]
    * sesstion_destroy()删除sesstion
    *
    * session 优缺点
    * 存于服务器中 安全 依赖于cookie 缺点占用服务器资源
    * 传递sessionID session_name() 和session_id()
    *
    * session的存储 session_set_save_handler( )
    */
    /**
    * 网络协议
    * HTTP协议状态码
    * 五大类状态码 1XX(信息类状态码) 2XX(成功状态码) 3XX(进行附加操作完成请求) 4XX (客户端错误状态码) 5XX(服务器错误)
    * 200 ok被正常处理了 204已成功处理,但是在返回的报文中不含实体的主体部分 206 部分的内容
    * 301 永久性重定向 302 零时性重定向 303 存在另一个URL 304 307(302)
    * 400 请求的报文中有语法错误,修改后请在一次请求,
    * 401 发送请求需要有HTTP认证的认证信息 403对服务器的访问被拒绝了 404 服务器上无法找到访问的资源
    * 503 服务器在进行超负载或者维护
    *
    * HTTP 协议的请求方法
    * GET
    * POST
    * HEAD
    * OPTIons
    * PUT
    * DELETE
    * TRACE
    *
    * GET 和POST区别
    * 1,在做后退和刷新的时候GET是无害的,POST数据就会被重新提交
    * 2,GET可以收藏为书签 但POST不行
    * 3,GET请求可以被浏览器缓存,POST不能被缓存
    * 4,GET请求会对url的长度有限制2048,POST 没有
    * 5,安全性 GET 没有POST安全
    * 6,显现性 GET在URL可见,POST 不会显示
    *HTTPS的工作原理
    * https 是一种基于SSL/TLS的HTTP协议,所有的HTTP数据都是在SSL/TLS协议封装上传输的
    * https 协议在HTTP协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议
    *
    * 常见的网络协议含义以及端口
    * FTP(文件传输协议,默认端口21) Telnet (用于远程登录的端口,用户可以远程链接计算机 23)
    * SMTP(定义了简单邮件传输协议 发送邮件 25) POP3(主要用于接收邮件,端口110)
    * HTTP(超文本传输协议 端口80)DNS(用于域名简析服务 53)

    */
    
    
    *开发环境的配置

    版本控制器
    集中式和分布式
    CVS 和SVN GIt
    PHP的运行原理
    CGI fastCGI 改良了CGI
    PHP-FPM 进程管理器

    真题 请简单叙述 CGI fastCGI h和 PHP-FPM的区别
    CGI 代表为了联系PHP 和websevae 的一个桥梁
    fastCGI 是CGI的改良版
    PHP-FPM 进程管理器
     
     
     





     

                            

          

          

      

     

  • 相关阅读:
    另一种遍历Map的方式: Map.Entry 和 Map.entrySet()
    mycat 插入语句导致的一个Dobbo问题
    Json数据处理
    List与字符串转换
    MySQL中四舍五入的实现
    java连接mysql :No Suitable Driver Found For Jdbc 解决方法
    Linux中printf格式化输出
    bat隐藏文件夹
    Python 3.5.2建立与DB2的连接
    Python 爬虫实例
  • 原文地址:https://www.cnblogs.com/gaowei521/p/10885487.html
Copyright © 2020-2023  润新知