PHP面试题集锦

整理下网上及个人面试过程中碰到的面试题,供找工作的phper参考。

1.用php打印时间格式“2017-01-01 12:12:32”。

  答:$date = date("Y-m-d H:i:s");

        print_r($date);

 

2.get和post的区别?

  答:(1)get是从服务器上获取数据,post是向服务器传送数据

    (2)get是把参数队列加到提交表单的ACTION属性所指的url中,值和表单内的字段一一对应,在url中可见。post是通过HTTP post机制,将表单中各个字段及内容放置在HTML HEADER内一起传送到ACTION所指的url地址。用户看不到这个过程。

    (3)get可传送的数据量小且不安全,post可传送的数据量较大且相对安全。

      

 

3.echo(),print(),print_r()的区别是什么?

  答:四种方法可以输出字符串:echo,print(), printf(),print_r()。

    echo 不是一个函数,而是一个语言结构,可以一次输出多个值,多个值之间用逗号隔开。

    print() 函数print()打印一个值(他的参数),如果字符串成功显示返回true,否则返回false。

    printf() 源于C语言的printf(),该函数输出格式化的字符串。

    print_r() 可以把字符串和数字简单的打印出来,而数组则以键值列表的形式展示。

 

4.能够使html和PHP分离开使用的模板?

  答:smarty

 

5.使用哪些工具进行版本控制?

  答:svn,git,cvs

 

6.include和require有什么区别?为避免一次包含多个文件,使用什么代替?

  答:include 被包含文件不存在或无法打开时,会报错,但系统依然往下执行;

    require 被包含文件不存在或无法打开时,会报错,并终止程序运行;

    include_once

    require_once

 

7.用php获取客户端ip和服务端ip。

  答: 客户端ip:$_SERVER("REMOTE_ADDR");

    服务器端:gethostbyname("www.baidu.com");

 

8.单引号和双引号的区别?

  答:一般情况下两者是通用的,但是双引号会解析变量,单引号不解析。

 

9.常用的超全局变量。(最少列举5个)

  答:$GLOBALS

    $_GET

    $_POST

    $_REQUIRE

    $_FILES

    $_SESSION

    $_COOKIE

    $_SERVER

 

10.seeion和cookie的区别?

  答:1.cookie产生于服务器,存储在客户端,存储的信息少,每个网站只能在客户端存储6个cookie,而且不安全,可用通过分析cookie进行cookie欺骗。

    2.seeion产生于服务器,存储在服务器,存储的信息较多,但是较多的session信息会影响服务器的响应速度,相对安全。

 

11.如何改变cookie的有效期?

  答:setcookie($key, $value, time()+$time);

 

12.优化数据库的方法?

  答:1.选取最适用的字段属性,讲表中字段的宽度设的尽可能小,尽量把字段设为NOT NULL

    2.适用连接(JOIN)来代替子查询

    3.适用联合(UNION)来代替手动创建的临时表

    4.事务处理

    5.锁定表,优化数据处理

    6.适用外键,优化锁定表

    7.简历索引

    8.优化查询语句

 

13.对于大流量网站,采用什么方法来解决访问流量的问题?

  答:1.确认硬件系统满足当前访问量的要求

    2.数据库读写分离,优化数据表

    3.控制大文件的下载

    4.使用不同主机分流主要流量

    5.使用流量分析统计软件,对流量集中网站进行重点优化

 

14.说说php中传值和传引用的区别,什么时候传值,什么时候传引用?

  答:1.传值,如果是非对象,会传一个值的拷贝,对这个变量做任何修改都不影响原值

    2.传引用,传应用或者传引用,传递的是真实的内存地址,对这个变量的改变会影响原值,传送大型变量时效率高

 

15.PHP的意思是?

  答:超文本预处理器,是一种开源脚本。使用广泛,主要适用于web开发领域。

 

16.字符串"\r","\n","\t","\x20"分别代表什么?

  答:"\r"在linux中代表的是回到当前行最开始的地方,mac中表示回到下一行最开始的地方。

    "\n"表示换行

    "\t"制表符

    "\x20"是32在ASC11表中16进制的表示

 

17.一下语句的输出结果是什么?

  $a = 3;

  echo "$a",'$a',"\\\$a","${a}","$a"."$a","$a"+"$a";

  答:3$a\$a336

 

18.一下语句的输出结果是什么?

  setcookie("a", "value");

  print $_COOKIE["a"];

  答:value (若知识这两段输出,则会提示PHP Notice:undefined index: a)

 

19:PHP将一个页面重定向另一个页面怎么写?

  答:header();

 

20:什么是魔术引号(magic_quotes_gpc)?

  答:魔术引号(magic quotes)是一个自动将进入PHP脚本的数据进行转义的过程。最好别在编译的时候转义,而是在运行时根据需要进行转义。

 

21:在类的方法中,如何调用父类的同名方法?

  答:parent::methodName();

 

22.extends的作用时什么?

  答:类的继承。

 

23:@test()和&test()有什么区别?

  答:@是错误抑制符,@test()是抑制test()方法中的错误提示

    &test()是引用test()方法

 

24:array+array 和 array_merge()的区别?

  答:1.键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为结果返回,而把后面的数组拥有相同键名的值抛弃掉

    2.键名为字符时,+仍然会把最先出现的值作为结果返回,抛弃后面数组拥有相同键名的值,array_merge() 会覆盖掉前面拥有相同键名的值

 

25:请列举最少3个魔术方法并说明他们的用途?

  答:构造函数:__construst();

    析构函数:__destrust();

    __get()控制私有受保护的未定义的成员属性的访问

    __set()对私有的受保护的未定义的成员属性进行赋值

    __isset()对私有的受保护的未定义的成员属性进行isset()和empty()判断

 

26:PHP支持多继承吗?

  答:不支持,只能继承一个父类,用extends标识。

 

27:在php中error_reporting函数有什么作用?

  答:设定error展示级别

 

28:mysql获取当前时间的函数是?格式哈日期的函数是?

  答:CURRENT_TIMESTAMP();

    DATE_FORMAT();

 

29:有一个网页,比如百度首页http://www.baidu.com/ ,如何得到它的内容?

  答:1.方法一:

    echo  file_get_contents("http://www.baidu.com/");

    2.方法二:(对于 version >= php5)

    $webContents = fopen("http://www.baidu.com/", "rb");

    $contents = stream_get_contents($webContents);

    fclose($webContents);

    echo $contents;

  

30:谈谈对MVC的认识和理解?

  答:M--Model 数据结构层

    V--View 视图层

    C--Controller 逻辑处理

 

31:写出发帖数最多的是个人的名字的sql。利用member(id, username, posts, pass, email)表。

  答: select top 10 id , username from member where order by posts desc.

 

32.请写一个函数验证邮件地址是否正确。

  答: $emailUrl = "123@163.com";

    $preg = "/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+([.a-zA-Z0-9_-])+/";

    return preg_match($preg, $emailUrl);

 

33:数据库中的事物是什么?

  答:事物是作为一个单元的一组有序的数据库操作。如果组中的所有操作成功,则认为事物成功,哪怕有一个操作失败,也是事物不成功。

 

    

posted @ 2017-03-11 13:25  elliot.noob  Views(150)  Comments(0)    收藏  举报