• PHP基础面试题(1-10)


    1.什么是PHP?

      PHP是一个基于服务端来创建动态网站的脚本语言,可以通过PHP和HTML 生成网站主页。

    2.什么是面向对象?主要特征是什么?

      面向对象是程序的一种设计方式,利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。

    3.session和cookie的区别是什么?请从协议,产生原因与作用说明一下?

      1.http协议是无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。

      2.存储位置不同:session存储在服务器端;cookie保存在客户端;

       安全性:session比较安全,cookie用某些手段可以更改,不安全。session依赖于cookie进行传递,禁用cookie后,session不能正常使用。

      3.session的缺点:保存在服务器端,每次读取都要从服务器进行读取,对服务器有资源消耗。session保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由PHP配置文件的session.save_path指定。session文件是公有的。

    4.如何不使用cookie的情况下向客户端发送一个cookie. 

         理解:session_start()开启时,生成一个常量 SID,当COOKIE开启时,这个常量为空,当COOKIE关闭时,这个常量中存储了PHPSESSID的值。通过在URL后加一个SID参数来传递SESSIONID的值,从而使客户端页面可以使用SESSION里面的值。  当客户端开启COOKIE和服务器端开启SESSION时。浏览器第一次请求,服务器会向浏览器端发送一个COOKIE里面存储的SESSIONID,当浏览器第二次请求时,会把已存在的COOKIE一起提交到服务器端。

    5.简述Cookie的设置以及获取过程?

      设置cookie的值:setCookie($cookieName,$value,time()+秒数);//依次是:cookie名称,cookie值,保存时间。

    例子:创建一个cookie,名字为UserName,值为zs,过期时间为2个星期

    代码如下:

      setcookie("UserName","zs",time()+2*7*24*3600);

    如果不设置时间,就不会保存到cookie文件中。浏览器不关时,能够访问。当浏览器关闭时,就无法访问了。

    例子:

    代码如下:

      setcookie("Age","18");

    2.取cookie的值

      $_cookie[$cookieName];         

    例子:取出UserName的值,放在变量$uName中

      $uName=$_COOKIE['UserName'];

    取值的时候,一般会先判断是否为空,再进行取值操作。上面的取值操作一般这样写:

      if (!empty($_COOKIE['UserName']))
    {

    $uName=$_COOKIE['UserName'];

    }

    3.删除指定cookie

      setcookie($cookieName,value,time()-秒数);
      //或者
      setcookie($cookiename, '');
      //或者
      setcookie($cookiename, NULL);

    例子:删除UserName

      setcookie("UserName","zs",time()-3600);

    4.删除当前会话的所有cookie

    foreach($_COOKIE as $key=>$val){
      setcookie($key,"",time()-100);
    }

    6.http状态中302,403,500,200,404,502代码的含义?

    一二三四五原则:

      一:消息队列  二:成功系列  三:重定向系列 四:请求错误系列 五:服务器端错误系列

    302:临时转移成功,请求的内容已转移到新位置

    403:禁止访问

    500:服务器内部错误

    401:代表未授权

    200:请求成功

    404:文件未找到

    502:服务器内部错误

    7.请写出数据类型(int char varchar datetime text)的意思,以及char和varchar的区别?

      int  整型   char 定长字符 varchar 变长字符  datetime 日期时间型 text 文本型

      区别:char是固定长度的字符类型,分配多少空间,就占用多少空间;varchar是可变长度的字符类型,内容有多大,就占用多大的空间,能有效节省空间。所以,查找效率char型快一些,因为varchar是非定型长度,查找的时候是先查找长度,然后再进行数据提取,比char的类型多了一个步骤,所以效率要低一些。

    8.数据库中的存储引擎主要有哪些?其中,MyISAM和InnoDB的基本区别?索引结构语句如何书写?

      mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。

      

      创建数据表的时候默认是MyISAM,其中MyISAM不支持事务处理等高级功能,而InnoDB支持,MyISAM类型的表强调的是性能,其执行速度更快一些,InnoDB提供事务支持以及外部键等高级数据库功能。
      创建索引:
        alter table tablename add index('字段名');
     9.isset()和empty的区别?
      isset()检测变量是否设置,并且不是null,empty()是用来判断变量是否为空。
    10.PHP字符串中单引号和双引号的区别?
      单引号不能解释变量,而双引号可以解释变量。
      单引号不能转义字符,在双引号中可以转义字符。
  • 相关阅读:
    SpreadJS 复制行
    RookeyFrame 模块 线上创建的模块 迁移到 线下来
    RookeyFrame 附件 上传附件
    RookeyFrame 字典 新增和绑定
    RookeyFrame Bug 表单管理 -> 查看表单 ->编辑字段页面 JS报错
    Catalan数
    美元汇率
    5倍经验日
    二分查找的边界问题
    线段覆盖5
  • 原文地址:https://www.cnblogs.com/Worssmagee1002/p/7652781.html
Copyright © 2020-2023  润新知