(一)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 修正 $对\n反斜线的忽略
* 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 进程管理器
 
 
 





 

                        

 

      

      

  

 

转载于:https://www.cnblogs.com/gaowei521/p/10885487.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.Net4.0 Parallel编程(三)Data Parallelism下

在上篇文章中介绍了如何Break、Stop循环,以及如何定义线程局部变量。在本文中介绍如何在外部去取消循环、以及异常的处理。 Cancel 在并行的循环中支持通过传递ParallelOptions参数中的CancellationToken进行取消循环的控制,我们可以CancellationTokenSo…

节点的运用和方法

JQUERY的父,子,兄弟节点查找方法 jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class") jQuery.parents(expr),类似于jQuery.parents(ex…

Java:使用终止信号确定数据导入的状态

几周前,我正在尝试将约6000万位数据最初导入Neo4j,但我们一直遇到一个问题,即导入过程似乎停滞了,什么也没导入。 很难分辨该过程中发生了什么—采取线程转储只是告诉我们它正在尝试处理CSV行中的一行,并且以某种方式…

根据可视窗口判断面板向上还是向下展开

本demo以element-ui框架为视图模板~ HTML代码 JS代码 CSS代码 转载于:https://www.cnblogs.com/dreamsqin/p/10885502.html

关于几本模拟IC设计书

1.P.R.Gray的书  这本书被业界誉为模拟IC的Bible,盛名之下,必无虚士。现在已经出到第四版,作者无一例外是业界大牛,该书论述严谨,思路清晰,对电路分析透彻,定义严格明确,无愧Bible…

编写JUnit测试的另一种方法(Jasmine方法)

最近,我为一个小型个人项目编写了很多Jasmine测试。 我花了一些时间才终于感到正确地完成了测试。 此后,当我切换回JUnit测试时,我总是很难过。 出于某种原因,JUnit测试不再那么好,我想知道是否有可能以类似于Jasmine的…

H5 input输入限制最大位数,和调用小键盘需求发生冲突的解决办法

首先&#xff0c;限制输入最大位数时&#xff0c;input有自带的属性maxlength。 <input type"text" name"email" maxlength"55" /> 使用方法&#xff1a;maxlength"位数" 但是&#xff0c;对于这个属性他是有自己的限制条件的 …

解决vue项目在ie浏览器中不显示的问题

安装 “babel-polyfill” npm install babel-polyfill --save-dev 或者 cnpm install babel-polyfill --save-dev在入口 main.js 文件引入&#xff1a;import babel-polyfill在 build 文件下的 webpack.base.conf.js 文件中修改代码&#xff1a; entry: {app: ["babel-p…

Spark-Luanch Driver

1.SparkSubmit.scala主要调用M-prepareSubmitEnvironment&#xff0c;该方法更根据用户定义的参数&#xff0c;匹配不同client&#xff0c;去调用不同clientApp。(ps&#xff1a;本次讲ClientApp 也就是standalone)在M-runMain通过 调用M-Utils.classForName 反射的方式调用 …

大风大浪大鱼

一群年轻人常在一泓深潭边钓鱼&#xff0c;而有一个渔夫总是在潭上边水流湍急的河里捕鱼。 年轻人觉得这渔夫可笑&#xff0c;在大风大浪的河里怎么会捕到鱼呢?有一天&#xff0c;年轻人忍不住去问渔夫&#xff1a;“鱼能在这么湍急的地方停留吗?”渔夫说&#xff0c;当然不能…

清空表单时出现问题

打开页面时报警告&#xff1a; 解决办法&#xff1a; &#xff08;1&#xff09;npm i default-passive-events -S &#xff08;2&#xff09;main.js中加入&#xff1a;import ‘default-passive-events’ 参考&#xff1a;https://www.jianshu.com/p/23850d4cade8 出现原…

JQuery Ajax 使用FormData上传文件对象

FormData部分: 先new FormData对象 :let somedata new FormData(),然后将数据添加进去&#xff0c;这里我们使用append()进行添加。 这里举一个上传头像的例子&#xff1a; let token localStorage.token; let img $(".file")..get(0).files[0]; let somedat…

[探索][管理]《现在,发现你的优势》

此书是我迄今为止看过最棒的一本书&#xff01;&#xff01;&#xff01; 为什么这么说&#xff0c;因为就像前言彼得德鲁克所说的一样 -- 大部分的人都不知道他们的优势何在。此书的宗旨就是测试你的优势是什么&#xff0c;并且发展你的优势。为何要去改变你不擅长的东西呢&am…

box2d——1.tiles瓦片积木

【调试渲染】 将TestCpp里Box2DTestBed的GLES-Render.h/cpp加入到项目中。声明绘制变量&#xff1a;GLESDebugDrawmDebugDraw。 【创建世界】 // 依据重力创建世界b2Vec2 gravity;gravity.Set(0.0f, -10.0f);mWorld new b2World(gravity);// 设置调试渲染和碰撞侦听mWorld-&…

如何在JSF中实现自定义密码强度指示器

使用JavaScript验证密码强度是一项常见任务。 在本文中&#xff0c;我将展示如何向基于JSF的Web应用程序添加密码强度指示器。 的 PrimeFaces中的密码组件已经具有密码强度的反馈指示符&#xff0c;但是它有两个主要缺点&#xff1a; 反馈指示器没有响应&#xff08;固定宽度…

CSS 学习路线(二)选择器

选择器 规则结构: 分两个基本部分 选择器(selector)和声明块(declaration block) 组成 声明块:由一个或多个声明组成,每一个声明都是属性-值对 选择器分为:元素选择器,类选择器,后代选择器,通配选择器,ID选择器,属性选择器,伪类选择器.子元素选择器,相邻兄弟选择器. 元素选…

关于vue打包的问题

一、vue-cli2 二、vue-cli3 一、vue-cli2 错误提示&#xff1a; npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! hewelry1.0.0 build: node build/build.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the hewelry1.0.0 build script. npm ERR! This is prob…

关于==和equals的区别和联系,面试这么回答就可以

长篇大论的话&#xff0c;我这里就不多写了&#xff0c;相信大家入门java 的时候就知道个大概了&#xff0c;这里想表述的是&#xff0c;如果面试官问你《关于和equals的区别》&#xff0c;该怎么回答完美呢&#xff1f;可以这样说 总结的来说&#xff1a; 1&#xff09;对于&a…

如何使用新的Apache Http Client发出HEAD请求

如果您已更新Apache HTTP Client代码以使用最新的库&#xff08;在撰写本文时&#xff0c;它是4.2.x版本的httpclient 4.3.5版本和httpcore 4.3.2版本&#xff09;&#xff0c;您会注意到某些类&#xff08;例如org.apache.http.impl.client.DefaultHttpClient或org.apache.htt…