PHP的面试题集,附我的答案和分析(一)


Posted in PHP onNovember 19, 2006

面试题1
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21
2、echo(),print(),print_r()的区别
3、能够使HTML和PHP分离开使用的模板
4、如何实现PHP、JSP交互?
5、使用哪些工具进行版本控制?
6、如何实现字符串翻转?
7、优化MYSQL数据库的方法。
8、谈谈事务处理
9、apache+mysql+php实现最大负载的方法
10、实现中文字串截取无乱码的方法。

答案:

1.echo date('Y-m-d H:i:s', strtotime('-1 day'));

2.echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象

3.so much,其实PHP本身就是一种模版引擎,我用过的是smarty,常见的还有PHPLib,FastTemplate,Savant这里有个模板引擎列表:http://www.sitepoint.com/forums/showthread.php?t=123769

4.题目有点含糊不清,SOAP,XML_RPC,Socket function,CURL都可以实现这些,如果是考PHP和Java的整合,PHP内置了这种机制(如果考PHP和.NET的整合,也可以这么回答),例如$foo = new Java('java.lang.System');

5.CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具,呃,这个可能需要这么回答:CVS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端.

6.用strrev函数呗,不准用PHP内置的就自己写:
function strrev($str) 
{
    $len=strlen($str);
    $newstr = '';
    for($i=$len;$i>=0;$i--)
    {
        $newstr .= $str{$i};
    }
    return $newstr;
}

7.高考政治题,把你知道的知识点都写上吧.我的答案:
(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率
(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read & write,从服务器read only,或者N台服务器,各机器互为Master
(3).(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引
(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句
(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select count(*) ... where article_id = ? 就可以了,不要先select * ... where article_id = ?然后msql_num_rows.
只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就update ... set title = ? where article_id = ?不要set content = ?(大文本)
(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度.

8.如同是个编程语言都会有答应Hello World的例子一样,是本数据库的教材都会讲A给B的账户转账50美元的例子,回答这个就好了.不过据我所知,用MySQL的企业,很少用MySQL来实现事务处理.何况现在Oracle收购了InnoDB的公司.

9.参见第七题的答案,那个地方搞好了这个问题就迎刃而解了.

10.哈哈哈,我猜出题的人是不是被substr的中文处理问题烦恼很久了,是不是还用了网上流传的用正则匹配中文字符然后截取的函数,其实,有非常简单的解决方法:mb_substr()

面试题2
var $empty = '';
var $null = NULL;
var $bool = FALSE;
var $notSet;
var $array = array();
1.
$a = "hello";
$b = &$a;
unset($b);
$b = "world"; 
what is $a?

2.
$a = 1;
$x = &$a;
$b = $a++; 
what is $b?

3.
$x = empty($array);
what is $x? true or false

4.您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?

5.您是否用过模板引擎? 如果有您用的模板引擎的名字是?

6.请简单阐述您最得意的开发之作.

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

8.用PHP写出显示客户端IP与服务器IP的代码:

答案一次更新blog的时候再写.

PHP 相关文章推荐
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
May 17 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
Aug 18 PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 PHP
深入解析PHP中逗号与点号的区别
Aug 05 PHP
PHP实现事件机制实例分析
Jun 26 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
如何使用php等比例缩放图片
Oct 12 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
php使用curl获取header检测开启GZip压缩的方法
Aug 15 PHP
php面向对象程序设计入门教程
Jun 22 PHP
echo(),print(),print_r()之间的区别?
Nov 19 #PHP
PHP的面试题集
Nov 19 #PHP
php+mysql实现无限级分类 | 树型显示分类关系
Nov 19 #PHP
PHP生成静态页面详解
Nov 19 #PHP
smarty实例教程
Nov 19 #PHP
PHP编程中八种常见的文件操作方式
Nov 19 #PHP
PHP初学入门
Nov 19 #PHP
You might like
php 保留小数点
2009/04/21 PHP
将数组写入txt文件 var_export
2009/04/21 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
js验证表单大全
2006/11/25 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
2018/01/25 Javascript
php中and 和 &&出坑指南
2018/07/13 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
中年人生感言
2014/02/04 职场文书
五年级数学教学反思
2014/02/11 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
幼儿学前班评语
2014/12/29 职场文书
领导干部失职检讨书
2015/05/05 职场文书
项目验收申请报告
2015/05/15 职场文书
汽车销售合同文本
2019/08/08 职场文书
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby