学习啦>创业指南>职场>面试题>

PHP经典面试题集锦

泽凡分享

PHP是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。以下是小编为大家搜索整理的PHP经典面试题集锦,希望能给大家带来帮助!

PHP经典面试题集锦

PHP经典面试题集锦

1. 求$a的值

复制代码代码如下:

$a = "hello";

$b = &$a;

unset($b);

$b = "world";

echo $a;

2. 求$b的值

复制代码代码如下:

$a = 1;

$x = &$a;

$b = $a++;

echo $b;

3. 写出一个函数实现 删除指定目录包括其下的所有子目录以及文件

4. 写一个函数,算出两个文件的相对路径,如:

$a = '/a/b/c/d/e.php';

$b = '/a/b/12/34/c.php';

javascript 基础知识部分

1. 谈谈js实现继承的几种方式,并写出demo

2. 谈谈你熟悉的js框架,并实现下面DOM元素的获取

要求找到drag="true" 并且 index="1" 或 无index属性的div

提示: 如果不能一次写出,请完成下来步骤

1. 找到drag="true" 并且 index="1"

2. 找到drag="true" 并且 无index属性的

3. 将二者联立起来得到

3. 实现一个遮罩层效果,要求要显示的元素在页面上居中显示

4. 闭包知识考察

复制代码代码如下:

function step(a){

return function(x){

return x+a++;

}

}

var a = step(10);

var b = step(20);

alert(a(10));

alert(b(20));

var a="123abc";

alert(typeof(a++));

alert(a);

MySQL 知识部分

1. 某内容管理系统中,表message有如下字段

id 文章id

title 文章标题

content 文章内容

category_id 文章分类id

hits 点击量

创建上表,写出MySQL语句

2. 同样上述内容管理系统:表comment记录用户回复内容,字段如下

comment_id 回复id

id 文章id,关联message表中的id

comment_content 回复内容

现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面

文章id 文章标题 点击量 回复数量

用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0

3. 上述内容管理系统,表category保存分类信息,字段如下

category_id int(4) not null auto_increment;

categroy_name varchar(40) not null;

用户输入文章时,通过选择下拉菜单选定文章分类

写出如何实现这个下拉菜单[可使用PHP,JAVASCRIPT,HTML]

Mysql 知识扩展部分

4. 系统需要对分类表进行扩展,使它能支持无限级别分类,请设计这个表结构,并根据你的设计完成下述场景

1. 查找隶属指定分类下的所有文章(包含子分类下的所有文章)

2. 查找指定文章的分类到根分类的层级,比如:

文章"Mysql优化心得" 它对应在 "程序设计/Mysql/运维/" 下

3. 删除分类时要求也能删除其下所有子分类

5. 系统需要对文章增加标签功能,(标签与文章是多对多的关系),用于实现"相关文章"功能.请设计这个表结构,

并根据你的设计完成下述场景.

1. 查找 与指定文章最相近的五篇文章 (相似度的'算法 以相同标签的数量作为依据,数量越大说明越相似)

综合知识部分:

1. 谈谈你对Cookie 与 Session 的理解,它们的适用场景是什么,如有可能可阐述下在多种应用下Session如何共享的思路

2. 谈谈你对单点登录的理解,比如原理与实现,以及实现过程中有哪些问题需要注意

3. 谈谈你对MVC的理解,MVC的缺点是什么,如果让你实现一个MVC框架,你想怎样实现?

4. 谈谈你平常工作中使用过的权限管理部分,你是如何理解与实现的?

PHP应聘面试题

1、

echo -10%3;

?>

答案:-1。

考查:优先级。

因为-的优先级比%求余的优先级低,也就是-(10%3)。

2、print (int)pow(2,32);

答案:0

3、//file1.php

$a = '123';

?>

//file2.php

echo include('file1.php');

?>

答案:1.

考查:返回值。

因include()也是一个函数,有返回值。在成功时返回1,失败时返回错误信息。如果被包含的文件有return,则inculde()成功时返回该文件的返回值。

4、

$count = 5;

function get_count() {

static $count = 0;

return $count++;

}

++$count;

get_count();

echo get_count();

?>

答案:1.

考查:static和++。

因static $count,所以只在第一次调用get_count的时候对$count赋值为0,第二次再进来这个函数,则不会第二次赋值。其次就是return $count++和return ++$count了,前者先返回,后者先++再返回。

5、

$arr = array(0 =>1,'aa' => 2,3,4);

foreach($arr as $key => $val){

print($key == 'aa' ? 5 : $val);

}

?>

答案:5534.

考查:类型转换。

因遍历数组第一次的时候,$key和aa的比较实际就是0和aa的比较,一个是int一个

PHP语言常用的面试题

一.用PHP打印出前一天的时间格式是:

YYYY-MM-DD HH:II:SS

echo date(“Y-m-d H:i:s”, time()-24__3600);

二.echo(),print(),print_ r()的区别:

echo是PHP语句, print和print_ r是函数,语句没有返回值,函数可以有返回值(即便没有用)

print( )只能打印出简单类型变量的值(如int, string)

print_ r( )可以打印出复杂类型变量的值(如数组,对象)

三.MYSQL取得当前时间的函数是?格式化日期的函数是:

now() DATE_FORMAT(date , format)

select now();

select curdate();

select curtime();

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

可以根据需要以下方法

1、PHP缓存

2、生成html静态页面

3、使用主从数据库,把数据库的读写分开

4、使用负载均衡器和多台服务器

五.用pHp写出显示客户端Ip与服务器Ip的代码:

客户端Ip: echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');

服务器Ip:

客户端Ip: echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');

服务器Ip:

程序代码

$serverIp=gethostbynamel(webpro01);

echo Server Ip Address:

;

for ($i=0; $i

echo

.$netscapeftp[$i];

}

echo

;

六.语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?

1、pHp程序执行到require()时,只会读取一次档案,故常放在程序开头,档案引入后pHp会将网页档重新编译,让引入档成为原先网页的一部分。

2、pHp程序执行到include()时,每次皆会读取档案,故常用于流程控制的区段,如条件判断或循环中。

3、require() :如果文件不存在,会报出一个fatal error.脚本停止执行

4、include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行

5、推荐使用require_once()和include_once(),可以检测文件是否有重复包含。

七.如何修改SESSION的生存时间.

方法一:

将php.ini 中session.gc_maxlifetime 设置为 9999(默认为 1440)重启 apache 即可

方法二:

$savepath = .'session_save_dir';

$lifeTime = 24 __ 3600;

session_save_path($savepath);

session_set_cookie_params($lifeTime);

session_start();

方法三:

setcookie() 或session_set_cookie_params($lifeTime) 在pHp中,heredoc是一种特殊的字符串,它的结束标志必须?

八.heredoc的.语法是用<<<加上自己定义成对的标签,在标签范围鹊奈淖质游一个字符串

$str = <<

I saw a dog yesterday.

EOD;

需要注意的是:

1、<<<后面的EOD是自己定义的标签名称,必须要成对,而且后面要加上分号表示结束。

2、结束的标签前面最好不要有空格,以免发生错误

九.在pHp中error_reporting这个函数有什么作用?

error_reporting( ) 用于设置php的侦听错误的级别.[用来配置错误信息回报的等级].

十.检测一个变量是否有设置的函数是?是否为空的函数是?

isset($a)empty($a)

简答题:

1. 简述Linux下安装PHP的过程?

2. 简述Linux下安装Mysql的过程?

3. 简述Linux下安装apache的过程?

4. 监视一个日志文件a.log 的最新内容?

5. 查看当前服务器的HTTP连接有哪些?

6. 说说Linux下的find命令和grep命令的区别?

7. 如何实现每天0点钟重新启动服务器?

8. 请写出5个常用的unix操作命令?

9. rm -rf __ 是什么意思,其中 f 有什么作用?

10. Linux压缩文件和解压文件的命令?

11. Linux的目录进行遍历,编写shell脚本?

12. apache默认使用进程管理还是线程管理?如何判断并设置最大连接数?

13. 当前目录下有一个文件为 showme.sh , 如何修改文件,将其指定为使用 /bin/bash 运

行,如何修改其权限为所有用户可读写,所有用户可执行?

14. 当前目录下有一个文件为 showme.sh,如何修改其所有人为root?

15. 在linux 请写出一种自动定时备份某一个文件的方法和具体实施流程,要求每天凌晨3点的时候备份一次。

    1828292