实验室一面结束,服务端面试总体结果还可以,但根据笔试题答案,面试官学长指出了其中的一些问题。

(其它方向试题请戳: 一个校园实验室的纳新题——(1)资源整理 http://www.cnblogs.com/corvoh/p/4869403.html )

服务端开发笔试题

1.简述const与define的区别。

在PHP中定义常量时,const与define的区别:

用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时

要比define快得多。在PHP 5.3.0 以后,可以使用const关键字在类定义的外部定义常量,先前版本const

关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或者取消定义。

(1)const用于类成员变量的定义,一经定义便不可修改。define不可用不类成员变量的定义,可用于全

局常量。

(2)const不能在条件语句中定义常量。

如:

        if (...) {const FOOT = ‘BALL’;//无效定义
}if (...) {const FOOT = ‘BALL’;//无效定义
}

(3)const采用一个普通的变量名称,define可以采用表达式作为名称。

如:

        const FOOT  = ’BALL’;for ($i = 0;$i < 32; ++$i) {define(‘BIT_’. $i,1 << $i);}

(4)const只能接受静态的标量,而define可以采用任何表达式。

如:

const BIT_5  = 1 << 5; //无效定义

define(‘BIT_5’,1 << 5); //有效定义

(5)const定义的常量对大小写敏感的,而define可通过第三个参数(为true表示大小写不敏感)来指

定大小写是否敏感。

如:

        define(‘FOOT’,’BALL’,true);echo FOOT; //BALLecho FOOT; //BALL

1.被指出:此题出题本意在于从基础概念上理解const与define区别,而非这里单纯的php角度。

参考:http://blog.sina.com.cn/s/blog_79b01f6601018xdg.html

http://blog.snsgou.com/post-778.html

2.说明函数传值与传引用的区别。

按值传递:函数范围内对制的任何改变在函数外部都会被忽略。

按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改。

优缺点:

按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将是一个代价很大的操作。

按引用传递则不需要复制值,对于性能提高很有好处。

如果不想改变原变量的值的时候就传值,如:

      <?php$a = 1;function aa($a) {echo ++$a;}aa($a);?>

如果可以让函数改变了原变量的值就可以引用传值:

      <?php$a = 9;function aa(&$a) {echo ++$a;}aa($a);?>

3.请写出至少两种不用中间值实现a与b交换值的方法。(a与b全小整型)。

①a=a+b;b=a-b;a=a-b

②a=a*b;b=a/b;a=a/b

    <?php$a = 1;$b = 2;$a = $a+$b;$b = $a-$b;$a = $a-$b;echo $a;?>

3.被指出:除了基本运算法则,此题其实还有更深刻的解题思路:异或思想。(具体概念还不理解,记在这里待深入)

4.“数据库”从表中user中选出name字段包含admin的前10条结果所有信息的sql语句。

  select * from user where name like '%admin%' limit 0,10

4.被提问:"%admin%"中"%"的含义(具体概念还不理解,记在这里待深入)

5.简述HTTP协议中GET、POST、PUT、HELETE、HEAD这几个请求的方法。

HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

GET:向特定的资源发出请求。GET方法不应当被作用于产生“副作用”的操作中。

POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体重。POST请求

可能会导致新的资源的建立和/或已有资源的修改。

PUT:向指定资源位置上传其最新内容。

DELETE请求服务器删除Request-URI所标识的资源。

5.除了GET、POST有接触外,别的都是百度的……)

6.简述HTTP请求状态码中1**、2**、3**、4**、5**的意义。

1**:信息类,表示收到web浏览器请求,正在进一步处理。

2**:请求成功,表示用户请求已成功被服务器接收、理解、并接受。

3**:重定向,表示请求没有成功客户端必须采取进一步的动作。

4**:客户端错误,表示客户端提交的请求有错误。

5**:服务器错误,表示服务器在处理请求的过程中有错误或者异常状态发生。

7.简述目前利用服务端语言解决HTTP无状态的方法?

HTTP本身是一个无状态的连接协议,为了支持客户端与服务器之间的交互,我们就需要通过不同的技术为交互存储状态,而这些不同的技术就是Cookie和Session了:

Cookie是通过客户端保持状态的解决方案。Cookie就是服务器发给客户端的特殊信息。有了Cookie这样的技术实现,服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的Cookie从而得到客户端特有的信息,动态生成与之相对应的内容。

Session通过服务器保持状态。Session是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态。在服务器端建立Session后,客户端和服务器端之间用Session id联络,从而使用户的状态得以保持。

例,在CodeIgniter框架下Session的建立和使用。

Session在服务器端的建立与使用:

      <?php $this->session->set_userdata('user',$user);?><?php $user = $this->session->userdata('user');?>

7.简单的被指出:session存在于服务器端,cookie存在于客户端

8.谈谈你对MVC的理解。

MVC是模型(Model)-视图(View)-控制器(Controller)的缩写。它是一个强制性使应用程序的输入、

处理和输出分开的设计模式。它们各自处理自己的任务。视图是用户看到并与之交互的界面。模型表示企业数据和业务规则。控制器接受用户的输入并调用模型和视图去完成用户的需求。

MVC的优点:低耦合性、高重用性和可适用性、较低的生命周期成本、快速的部署、可维护性、可拓展性,有利于软件工程化管理。

MVC的缺点:没有明确的定义,完全理解MVC并不容易、不适合小型规模的应用程序、视图与控制器间的过于紧密的连接、视图对模型数据的低效率访问问题等。

9.描述你在开发过程中遇到印象最深刻的问题以及解决的过程。

CI框架下的传参问题。

暑假刚接触PHP和CI,便有做一个用户登录并接收到属于用户自己的欢迎界面的想法,需要用到传参。

预期功能:注册、登录并完善信息后,网页左上角输出用户姓名+问候语。

最初用的是类方法中的传参,在一个方法里分配视图的时候合并参数建立数组并保存到$data中传递给视

图,再在视图中调用。但随着网页层级的加深,跳转传参变得既困难繁琐又重复难改,为了优化源码,便

于理解和修改,开始寻找解决方法。

解决问题的过程中依靠最多的是用户手册、百度百科和其他博主的博客,找要点学习从而知道了Session。

当用Session重新部署源码后,省去了很多空间,也使源码变得清晰易懂,优化很多。

最终以邮件保存此段经历心得收尾。而下面所附的迷你型网站项目便是此次经历的成果。

下附:

个人博客:http://www.cnblogs.com/corvoh/

个人主页:http://hanyile.sinaapp.com/

一个迷你型网站项目:http://2.corvoh.sinaapp.com/

就这么交上去,凭着自信与奋进的心博得了二面的机会。

二面时间将定于下周,并要求带上自己在linux下上传的网站作为二面试题,具体过程已有,参考:

Linux下XAMPP的部署:http://www.cnblogs.com/corvoh/p/4873085.html

转载于:https://www.cnblogs.com/corvoh/p/4883124.html

一个校园互联网实验室的纳新试题(我的服务端开发笔试题)相关推荐

  1. 【腾讯笔试题】2019年腾讯实习正式批移动端开发笔试题

    2019年腾讯实习正式批移动端开发笔试题 说明 不定项选择题 编程题 1.小Q与橙汁 题目描述 输入描述 输出描述 示例1 输入 输出 示例2 输入 输出 2.打怪兽 题目描述 输入描述 输出描述 示 ...

  2. 2015 4399校园招聘游戏开发笔试题

    http://gointernetgo.com/textinterview/other/4399yxbs 2015 4399校园招聘游戏开发笔试题 2014-10-19 • 其它 • 0 条评论 •2 ...

  3. 某公司iOS开发笔试题

    参考答案不唯一,大家可以根据自己的理解回答,没有必要跟笔者的一样.参考笔者的答案,也许给你带来灵感! 1.对数组中的元素去重复 例如: NSArray *array = @[@"12-11& ...

  4. 后端的一个刚毕业的小伙子老早完成了架构和服务端逻辑,接口洋洋洒洒列了出来。。。...

    后端的一个刚毕业的小伙子老早完成了架构和服务端逻辑,接口洋洋洒洒列了出来... 转载于:https://www.cnblogs.com/panxuejun/p/8422639.html

  5. 小米2019秋招系统软件开发笔试题详解

    小米2019秋招系统软件开发笔试题详解 兄弟们,给大家个题目玩一玩,题目如下: @ 在游戏Dota2中,有一位非常强大的英雄卡尔,他有三种属性:冰.火.雷.同时卡尔身上有三个无顺序的属性槽,他可以从三 ...

  6. 百度2015校园招聘软件开发笔试题及答案

    简单题(本题共30分) 请简述Tcp-ip的3次握手以及4次挥手过程?并解释为何关闭连接需要4次挥手(10分) 详细答案参见TCP/IP协议三次握手与四次握手流程解析 TCP三次握手.四次挥手过程如下 ...

  7. c++软件开发面试旋极面试题_腾讯软件开发面试题(有详细解答)

    我大学的时候,就有些博客的习惯.今天翻回去看之前写的博客,觉得有些幼稚,也有些惊喜.比如17 年初写的腾讯软件开发面试题还挺多人阅读评论的,这是我意想不到的,今天也整理一下,发出来给大家看下. 1.已 ...

  8. Java中级开发笔试题及答案,最全指南

    JAVA基础 JAVA异常分类及处理 异常分类 异常的处理方式 Throw和throws的区别 JAVA反射 动态语言 反射机制概念 (运行状态中知道类所有的属性和方法) Java反射API 反射使用 ...

  9. 【游戏开发实战】手把手教你从零跑一个Skynet,详细教程,含案例讲解(服务端 | Skynet | Ubuntu)

    文章目录 一.前言 二.关于Skynet 三.Ubuntu虚拟机 1.Ubuntu系统镜像下载 2.VirtualBox虚拟机软件 2.1.VirtualBox下载 2.2.VirtualBox安装 ...

  10. 牛客网 测试开发笔试题 含解析

    1. 某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构.如果物理页的大小为512字节,那么进程A与进程B的物理内存总共使用了____字节. 正确答案:3584 解析:物理页可以在进程 ...

最新文章

  1. Cannot unwrap to requested type [javax.sql.DataSource]
  2. 自己动手实现Lua调试器
  3. 200 计算机网络之物理层思维导图小结
  4. 代理的JavaOne 2014观察
  5. 【6】C++语法与数据结构之STL_list学生管理系统_链表外排序_函数指针
  6. 33tomcat目录结构
  7. java 桌面图标插件_JavaSwing界面设计(所有控件及示例)预览.ppt
  8. [Xilinx]Xilinx ISE14.2中调用文本编辑器NotePad++设置方法
  9. IPv4与IPv6数据报格式详解
  10. Hive下载安装及配置
  11. fw325r没有虚拟服务器,迅捷fw325r路由器设置完没有网怎么办?
  12. 计算机装配方案之游戏发烧型,5000元Intel八代i5-8500配RX580电脑配置 畅玩各类中大型游戏...
  13. 51单片机实战教程基础硬件篇(三 51单片机开发板设计)
  14. Flink 开发环境部署和配置
  15. “双花”问题及解决之道
  16. vue3+ts+vite后台管理模板
  17. Video-based Emotion Recognition Using Multi-dichotomy RNN-DNN
  18. 30岁前,你应该知道的九大潜规则
  19. Struts2-关于struts.xml文件的action配置的说明
  20. Java虚拟机中STW(stop the world)是什么意思

热门文章

  1. 编译OpenJDK12:a microsoft compiler is required
  2. LINUX SHELL判断两个字串包含关系的办法
  3. 解决办法: error: passing ‘const VideoFrame’ as ‘this’ argument discards qualifiers [-fpermissive]
  4. 无人机会飞丢及编程上的改进思路
  5. 二值化_二值化算法之宇智波鼬
  6. java 表格布局_Java怎样把表格放在绝对定位的面板上
  7. 51单片机如何跳出wile循环_基于proteus的51单片机开发实例(1)
  8. 南京大学计算机学院冯新宇导师,中国科学技术大学计算机科学与技术专业硕士研究生导师冯新宇...
  9. fclose会写入硬盘吗 linux_Linux 文件操作总结
  10. android 广告字幕,Android编程实现类似天气预报图文字幕垂直滚动效果的方法