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字符串中单引号和双引号的区别?
  单引号不能解释变量,而双引号可以解释变量。
  单引号不能转义字符,在双引号中可以转义字符。

PHP基础面试题(1-10)的更多相关文章

  1. 经典的Java基础面试题集锦

    经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用 ...

  2. [Unity3D]上海某大型游戏公司的基础面试题

    一个小老乡跟我聊到去上海某大公司的基础面试题,面试结果不尽如人意,但还是分享了下面试的试题,刚刚第一次录制视频,给某人讲课,我感觉讲的还算比较耐心,但发现一些新手入门学习的弊端,可能是很普遍的现象,这 ...

  3. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  4. Android开发面试经——2.常见Android基础笔试题

     标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报  分类: Android开发(29)  版 ...

  5. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

  6. 前端基础面试题(JS部分)

    1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String 值类型:数值.布尔值.null.und ...

  7. 100道Java基础面试题收集整理(附答案)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  8. 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)

    选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...

  9. 网络工程师岗位基础面试题【适用于CCNA/CCNP基础】

    网络工程师岗位基础面试题[适用于CCNA/CCNP基础] 1: 交换机是如何转发数据包的?交换机通过学习数据帧中的源MAC地址生成交换机的MAC地址表,交换机查看数据帧的目标MAC地址,根据MAC地址 ...

  10. iOS一些基础面试题

    Part One 别人问你你都感觉这尼玛说啥的基础面试题 1.UIWindow和UIView和 CALayer 的联系和区别? 答:UIView是视图的基类,UIViewController是视图控制 ...

随机推荐

  1. zclip结合easyui实现复制datagrid每行特定单元格数据的功能

    在easyui的datagrid里面,实现复制每行特定单元格的功能,关键是想想如何获取到每个单元格的数据,功能是点击按钮"复制",然后复制object的下载地址,截图如下所示: 进 ...

  2. (转)Netty : writeAndFlush的线程安全及并发问题

    rocketmq用netty实现的网络连接,发现它多个线程掉用一个channel连接,所以这个是线程安全的? 使用Netty编程时,我们经常会从用户线程,而不是Netty线程池发起write操作,因为 ...

  3. DevExpress.Build.targets

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <UsingTask ...

  4. Oracle database wrc运行报错ORA-15557

    [oracle@host capture]$ wrc system/oracle@db1 REPLAYDIR=/home/oracle/cap_dir/ Workload Replay Client: ...

  5. git学习——分支

    分支 创建分支:git branch 如:git branch testing Git通过HEAD指针知道用户是在哪一个分支上工作. 切换分支用git checkout命令,注意:可以用git sta ...

  6. ColorSchemer Studio 2 破解

    软件介绍: ColorSchemer Studio 2 is a professional color matching application for anyone from hobbyists t ...

  7. 【Python】help与dir的用法

    当你给dir()提供一个模块名字时,它返回在那个模块中定义的名字的列表.当没有为其提供参数时, 它返回当前模块中定义的名字的列表. 如果您需要快速获取任何的Python函数或语句的信息,那么您可以使用 ...

  8. oracle常用函数使用大全 Oracle除法(转)

    http://blog.csdn.net/chenmeng2192089/article/details/9155625 一.运算符算术运算符:+ - * / 可以在select 语句中使用连接运算符 ...

  9. IE 页面不正常显示 错误脚本不报错 脚本调试相关

    在开发时,有时自己做的页面上的JS有错误,但是IE浏览器并不报错,这个时候有可能是因为脚本调试被禁止了. 在Internet选项的高级里面有 两个禁止脚本调试选项,把他们去掉就行.

  10. olede读excel

    注意点:需要比较excel文件中是否有重复列时,需要设置HDR=No,IMEX=1,即把第一列当做数据读取,不然读到的datatable列名会被自动加数字后缀. /// < summary> ...