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 动态添加记录
Mar 10 PHP
PHP开发过程中常用函数收藏
Dec 14 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
网页上facebook分享功能具体实现
Jan 26 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
PHP实现文件下载详解
Nov 27 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
php通过header发送自定义数据方法
Jan 18 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下读取文本文件的代码
2008/07/02 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
layui表格实现代码
2017/05/20 Javascript
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
vuex存储token示例
2019/11/11 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python Nose框架编写测试用例方法
2017/10/26 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
Python实现搜索算法的实例代码
2020/01/02 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
办公室文秘自我评价
2013/09/21 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
老师对学生的寄语
2014/04/09 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL