zoukankan      html  css  js  c++  java
  • 【2016-04-22】php面试心得

    面试岗位:web开发工程师

    一、面试问题:

    1、get和post区别以及另外的两个

    1). get是从服务器上获取数据,post是向服务器传送数据。
    2). get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
    3). 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
    4). get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
    5). get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

    建议:
    1)、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
    2)、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

    2、cookie和session的区别和联系

    cookie 和session 的区别:
    1)cookie数据存放在客户的浏览器上,session数据放在服务器上。
    2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
    考虑到安全应当使用session。
    3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
    考虑到减轻服务器性能方面,应当使用COOKIE。
    4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

    cookie 和session 的联系:
    session是通过cookie来工作的
    session和cookie之间是通过$_COOKIE['PHPSESSID']来联系的,通过$_COOKIE['PHPSESSID']可以知道session的id,从而获取到其他的信息。
    在购物网站中通常将用户加入购物车的商品联通session_id记录到数据库中,当用户再次访问是,通过sessionid就可以查找到用户上次加入购物车的商品。因为sessionid是唯一的,记录到数据库中就可以根据这个查找了。

    3、魔术方法:__call()、__tostring()

    __call()函数是php类的默认魔法函数,__call() 在一个对象的上下文中,如果调用的方法不存在的时候,它将被触发

    __toString() 方法用于一个类被当成字符串时应怎样回应。例如 echo $obj; 应该显示些什么。此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR 级别的致命错误

    4、css中的position属性,如何让几个div并排显示,overflow属性

    css的position属性文档说明

    position 最主要的两个属性:属性 absolute(绝对定位) relative(相对定位)

    用float属性让div并排显示

    overflow属性是指当区域中的内容超出边界时如何展示

    5、数据库中的存储引擎

    6、svn和git

    svn和git的区别:

    1)git是分布式的,没有网络时也可以提交;

    2)git把内容按元数据方式存储,而SVN是按文件;

    7、向数据库中插入一个字段

      ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE  

    8、设计模式

    9、array_walk()用法

    对数组中每个元素应用用户自定义函数

    见文档

    10、abstruct类与接口的区别

    区别:

    1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。

    2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。(另Java接口中的成员变量都要声明为public static final类型)

    3、接口没有构造函数,抽象类可以有构造函数。 

    4、接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。

    5、一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。 

    选择抽象类还是接口。

    • 如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建将由一些不相关对象采用的功能,就使用接口。
    • 如果必须从多个来源继承行为,就使用接口。
    • 如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。

    11、REST接口调用方法

    12、面向对象中的多态性

    所谓多态性是指一段程序能够处理多种类型 
    对象的能力,比如说在公司上班,每个月财务发放工资,同一个发工资的方法,在公司内不 
    同的员工或是不同职位的员工,都是通过这个方法发放的,但是所发的工资都是不相同的。 
    所以同一个发工资的方法就出现了多种形态。对于面向对象的程序来说,多态就是把子类对 
    象赋值给父类引用,然后调用父类的方法,去执行子类覆盖父类的那个方法,但在PHP 里是 
    弱类型的,对象引用都是一样的不分父类引用,还是子类引用。 

    13、php新版本的改动

    php7新特性 官方说明文档

    1)返回值类型,严格模式

    2)??运算符<=>组合比较符,当$a小于、等于或大于$b时它分别返回-1、0或1

    3)use批量引入 

    14、MVC模型及常用的框架

    回答:MVC由Model(模型), View(视图)和Controller(控制器)组成,PHP MVC可以更高效地管理好3个不同层的PHP代码。

    Model:数据信息存取层。

    View:view层负责将应用的数据以特定的方式展现在界面上。

    Controller:通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。 


    二、联想到的可能面试题:

    1、require和include的区别

    1)报错

    require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误 
    include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。 

    2)条件引用

    include()是有条件包含函数,而require()则是无条件包含函数。

    3)文件引用方式

    include()执行时需要引用的文件每次都要进行读取和评估,require()执行时需要引用的文件只处理一次

    2、php error的级别

    回答:PHP中遇到的错误类型大致有3类。

    提示:这都是一些非常正常的信息,而非重大的错误,有些甚至不会展示给用户。比如访问不存在的变量。

    警告:这是有点严重的错误,将会把警告信息展示给用户,但不会影响代码的输出,比如包含一些不存在的文件。

    错误:这是真正的严重错误,比如访问不存在的PHP类。

    <?php
    //禁用错误报告
    error_reporting(0);
     
    //报告运行时错误
    error_reporting(E_ERROR | E_WARNING | E_PARSE);
     
    //报告所有错误
    error_reporting(E_ALL);
    ?>

    3、array_map等数组函数

    4、盒子模型

     5、引用css的方式有哪几种

    回答:在页面中使用CSS有3中方式:

    • 引用外部CSS文件
    • 内部定义Style样式
    • 内联样式

     6、中英文混合的字符串长度

    strlen()计算英文长度,中文长度除以2


    三、总结:

    1、前端知识缺乏

    2、数据库知识缺乏

    3、注册个github账号装逼用

  • 相关阅读:
    flask-模型
    git配置
    windows 下mysql安装
    Python安装
    django部署(gunicorn版本)
    【草稿】 PYTHON 基本知识
    【草稿】简单的python脚本监控ORACLE数据并邮件通知,WIN操作系统下
    orcle linux怎么登陆?全局表空间统计信息怎么查看?表空间内表的统计信息怎么看?数据表的字段怎么查?
    计算机基础篇
    构建乘积数组
  • 原文地址:https://www.cnblogs.com/junxu/p/5423179.html
Copyright © 2011-2022 走看看