三道PHP面试题

有三道PHP的面试题,除了第三题需要一些经验和对HTTP协议理解外,前面两题其实很简单,但是很少遇到有人答正确的,大部分人我想都不是技术问题,而是思考是否严谨的问题。
[coolcode lang=php]
1. 下面语句输出什么?为什么?
if ($a=$b) printf(“a==b”);
else printf(“a!=b”);
2. $array[‘anykey’]和$array[anykey]有什么区别?
3. 写出使用telnet命令通过GET的方式访问http://www.toplee.com/index.php 得到页面返回的方法(不是用PHP实现,用dos或者unix命令行实现)。
[/coolcode]

25 thoughts on “三道PHP面试题”

  1. 1.将b的值赋予a 因为b是null 所以else
    2.这样写的话在警告没有打开的条件 不会出现提示错误的 anykey 只要没有定义成常量 效果一样 (节约了两个单引号) :)
    3.貌似这样没有什么好处吧 :) curl更强大

  2. Michael兄,

    有个ZF性能问题请教下,我以前是搞JAVA的,最近开始准备学习ZF。昨天刚刚下了ZF1.6,测试性能发现不是一般的差。你有没有这方面的测试数据。

    安装环境:apache2.2, php5.2.6,xcache1.2.2
    我按照ZF官网的例子Quickstart做了一个最简单的例子,不访问数据库,没有业务逻辑,就是输出一个’hello world’,只是走通了MVC的概念。然后用AB做了一个10个用户,1000笔请求的测试,结果吓我一跳。每秒请求数在13-15左右。

    不用ZF,只写一个简单的hello.php,用AB做同样10*1000测试,每秒在1300,相差了将近100倍。

    我检查了XCACHE,确认缓存是命中的。

    有没有什么建议?谢谢。

  3. Michael兄,

    以前没有采用php,是因为企业应用,对分层要求比较高,所以没有使用php,但对php, ror一直抱有好感。如果没有使用ZF,php的性能还是可以接受的,基本上在java的70%,不是问题。

    但是ZF目前的表现是在是不敢用。可能我什么地方配置有问题?不过ZF的配置确实十分简单啊。

    今天我用spring mvc,做了同样的一个例子,在同样的硬件环境下做了同样的测试。
    机器:DELL 笔记本,core 2, 1.73GHZ, 2G内存。
    操作系统: WINDOWS
    服务器:TOMCAT 6.0

    禁止session,采用share nothing的路子,测试。结果如下:
    10并发 1000笔时:每秒1800以上
    100并发10000笔时:每秒1800左右
    500并发10000笔时:每秒1400左右

    写这个问题的目的确实是想得到一个ZF应用的性能答案。如果是可接受的范围,很想切换到ZF上,因为ZF开发确实方便。

  4. [Comment ID #30152 Will Be Quoted Here]

    实话实说,纯粹的ZF框架,如果要用到商业的大型高并发应用上,还是不建议用,纯粹的ZF适合用在企业应用和网站的内部后台系统开发上,因为无论如何,不可想象一个大型应用会基于一个index.php来做Router和Rewrite

    我应用的方法,更多的只是采用ZF的部分模块或者使用ZF的代码组织方式和编码风格,吸取长处的地方到具体的项目中。

  5. 说得好。

    我也有同样的想法,吸取ZF和ROR的简洁化,准备在SPRING上做同样的约定代替配置的工作。

    ZF等真的成熟了再说吧。谢谢。看过你的大容量并发架构的博文,写的很好,获益非浅。

  6. 第一个,if里面的判断,嘿嘿,因为$a = $b是赋值,如果$b非零,则if为真,否则为假;
    第二个,考察的是数组中键,单引号与无引号的性能,当然是用单引号的性能会高于无引号的,因为无引号的,PHP会把它当成常量,找不到了再做键
    第三个,不懂^_____^

Leave a Reply

Your email address will not be published. Required fields are marked *

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image