PHP经典面试题集锦
PHP是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。以下是小编为大家搜索整理的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点的时候备份一次。