zoukankan      html  css  js  c++  java
  • (一)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 进程管理器
     
     
     





     

                            

          

          

      

     

  • 相关阅读:
    hdu 1823 Luck and Love 二维线段树
    UVA 12299 RMQ with Shifts 线段树
    HDU 4578 Transformation 线段树
    FZU 2105 Digits Count 线段树
    UVA 1513 Movie collection 树状数组
    UVA 1292 Strategic game 树形DP
    【ACM】hdu_zs2_1003_Problem C_201308031012
    qsort快速排序
    【ACM】nyoj_7_街区最短路径问题_201308051737
    【ACM】nyoj_540_奇怪的排序_201308050951
  • 原文地址:https://www.cnblogs.com/gaowei521/p/10885487.html
Copyright © 2011-2022 走看看