笔面试题—站长的笔面试记录(持续更新)

By | 11月 17, 2017

更多内容可以前往github查看,https://github.com/lin10/interview

1.PHP的魔术变量都有什么?

  •         __LINE__  文件中的当前行号。
  •   __FILE__  文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
  •   __DIR__  文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
  •   __FUNCTION__  常量返回该函数被定义时的名字
  •   __CLASS__  常量返回该类被定义时的名字(区分大小写)。
  •   __METHOD__  类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
  •   __NAMESPACE__  当前命名空间的名称(区分大小写)。此常量是在编译时定义。

 

2.PHP超级全局变量(9个)

  •         $GLOBALS  储存全局作用域中的变量
  •   $_SERVER  获取服务器相关信息
  •   $_REQUEST 获取POST和GET请求的参数
  •   $_POST       获取表单的POST请求参数
  •   $_GET         获取表单的GET请求参数
  •   $_FILES      获取上传文件的的变量
  •   $_ENV        获取服务器端环境变量的数组
  •   $_COOKIE    浏览器cookie的操作
  •          设置cookie:setcookie(name, value, expire, path, domain);
  •          获取cookie:$_COOKIE[“user”];
  •          删除cookie:setcookie(“user”, “”, time()-3600);//设置过期时间
  •   $_SESSION  服务端session的操作
  •            使用session前一定要session_start()启动session
  •            储存session:$_SESSION[“name”]=”King”;//数组操作
  •            销毁session:unset($_SESSION[“name”]);//销毁一个
  •            session_destroy()和unset($_SESSION);//销毁所有的session

 

3.PHP魔术函数(13个)

  •        __construct()   实例化对象时被调用,当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。
  •   __destruct()    当删除一个对象或对象操作终止时被调用。
  •   __call()      对象调用某个方法,若方法存在,则直接调用;若不存在,则会去调用__call函数。
  •   __get()       读取一个对象的属性时,若属性存在,则直接返回属性值;若不存在,则会调用__get函数。
  •   __set()        设置一个对象的属性时,若属性存在,则直接赋值;若不存在,则会调用__set函数。
  •   __toString()    打印一个对象的时被调用。如echo $obj;或print $obj;
  •   __clone()       克隆对象时被调用。如:$t=new Test();$t1=clone $t;
  •   __sleep()       serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。
  •   __wakeup()     unserialize时被调用,做些对象的初始化工作。
  •   __isset()       检测一个对象的属性是否存在时被调用。如:isset($c->name)。
  •   __unset()    unset一个对象的属性时被调用。如:unset($c->name)。
  •   __set_state()  调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
  •   __autoload()    实例化一个对象时,如果对应的类不存在,则该方法被调用。

 

4.前端后端的常用开发框架都有哪些?

前端:(1) CSS:    Bootstrap、EasyUI

     (2)JavaScript:VUE.js、angular.Js、jQuery.js。

后端:thinkPHP、Yii、Laravel、swoole、workerman(当时只想到这几个)、。

5.如何查看防火墙开放的端口号
service iptables status

6.查看防火墙特定的端口号,例如80端口的状态?
netstat -an | grep 80 查看80端口被什么占用
netstat -tunlp | grep 80
lsof -i:80

7.Linux系统中System进程占用大量CPU,可能的原因?
(1) 进入了一个死循环无法跳出来;
(2) 也许是一直在等待一个信号,如从dbus上读取一个用户需要的信息; #dbus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信。
(3) 有可能是程序在对一个非常大的内容进行分析和处理;
(4) 有可能是程序要处理的问题比较多,所以在一个个慢慢的执行。

8.说一下HTTP2.0与HTTP1.0的根本区别。

9.InnoDB和MyISAM的区别是什么,二者分别应用与什么方面?

10.用尽量多的方法说明如何提高一个网页的访问速度。

11.请设计一个通信协议,实现与摄像头之间的通信,要注意协议的安全性和可扩展性。

12.如果一个公司有几十个系统,每一个系统都需要登录,现在请你设计一个系统,可以实现每一个系统的单点登录。

发表评论

邮箱地址不会被公开。