程序员找工作必备 PHP 基础面试题 - 第十六天

“PHP学习网” 公众号会每天分享一些面试题,正在找工作的小伙伴们可以来看看哦。

一、使用PHP语言自定义一个函数,此函数作用是将一个句子按单词反序。例如”One World One Dream”,反序后变为 “Dream One World One”。

function get_rev($str){
        $arr=explode(‘ ’,$str);
        for($i=count($arr)-1;$i>=0;$i--){
            $res.=$arr[$i]. ;
}
return $res;
}

二、两条查询语句,一条是Select * from table1 where id>10 and id<100

一条是Select * from table2 where id>200 and id<500
请尝试只写一条SQL语句,完成相应的查询任务。

Select * from table1 as t1,table2 as t2 where t1.id>10 and t1.id<100 and t2.id>200 and t2.id<500;

三:有两个文件,一大一小,其中之一有8,000,000个电话号码,另一个文件有500个电话号码,请说明一种方法找出重复的电话号码。

1、读取文件里的内容,以某字符作为分割标志(使用explode()函数),分隔800000的字符串,然后用500个电话号码作为值,作为判断条件(使用in_array()函数)判断,是否存在于其中,存在则拿出

2、要是效率的话,使用hash算法

3、array_intersect()效果更佳

四、有一伙海盗,俘虏了三个渔民A、B、C。海盗船长决定杀他们之前给他们一次机会。他当渔民的面拿出三顶黑帽子,两顶白帽子,然后给这三个可怜人各戴一顶,分别问他们头上帽子的颜色。

每个渔民只能看到另外两个渔民帽子的颜色,看不到自己的,而且他们不能通讯,不能讨论,如果猜对了,放一条生路,否则立即处死。
船长先问渔民A,结果渔民A猜错了,被杀死了。船长又问渔民B,结果还是猜错了,同样被杀死了。海盗船长再问渔民C时,结果渔民C猜对被释放了。
考虑到船长及A、B、C都很聪明,问为什么渔民C一定能猜中?

答案:偶不会,会的留言说一下答案吧!

五、请用正则表达式写一个函数,验证电子邮件的格式是否正确。

    function get_url($email){
        if(preg_match('/^([0-9a-zA-Z_]+)*\w+@(\w)+\.com|\.cn$/ims',$email)){
    echo 2;
    }
  }

六、列举流行的Ajax框架?(每个1分)说明Ajax实现原理是什么及Json在Ajax中起什么作用?

jQuery extjs

原理:通过XMLHttpRequest创建对象,根据客户端的请求,传递到服务器端进行数据处理,然后接收服务器端返回来的数据

以json格式组装从服务器端返回来的数据

七、我们常可以看到,一些商场买200元的商品可以返100元优惠券(可在本商场代替现金)。请问实际上商品的折扣是多少?

如果买完200元的商品 不用优惠券 折扣没有,多了1张100元优惠券
如果买完200员的商品 使用优惠券(将这个100员优惠券又去买完了商品) 相当于200元的现金 买来了 300员的商品 200/300=66%

八、我们希望开发一款扑克游戏,请给出一套洗牌算法,公平的洗牌并将洗好的牌存储在一个整形数组里。

$a=54;
for($i=1;$i<=$a;$i++){
    $str[$i]=$i;
}
for($i=1;$i<=$a;$i++){
    $t=rand(0,$a-$i);
    $s[$i]=$str[$t];
    unset($str[$t]);
    $str=array_values($str);
}
echo '<pre>';
print_r($s);

九、我们希望开发一个门户系统,数据存储采用MySQL,用户数量为1000万,预计文章总数为10亿,日更新量至少为10万,日访问量为5000万,对数据库的读写操作比例超过10:1,你如何设计该系统,以确保其高效,稳定的运行?

(提示:可以从数据库设计,系统框架及网络架构方面进行描述,自由发挥)

网络
DNS轮循
Nginx主 从服务器(2台以上 用于负载均衡)
集群服务器->PHP分发器(根据随机数对应ip连接数据库)
数据库集群(多台以上)
数据库(2台以上)互为主从

最后各位可以扫下方二维码关注我公众号,目前我正在更新基础面试题,之后会更新中高级、redis、liunx面试题

本作品采用《CC 协议》,转载必须注明作者和本文链接
和PHP学习网一起努力学习
讨论数量: 1

###黑白帽子问题:

####理论上AB回答的结论是

[
     黑,白
     白,黑
     黑,黑
     白,白
]

现在逐一讨论:

  1. A黑B白, AB都错误说明正确的是A白B黑, 因为B回答是白,所以C只能是黑;
  2. A白B黑, AB都错误说明正确的是A黑B白, 因为A回答是白,所以C只能是黑;
  3. A黑B黑, AB都错误说明正确的是A白B白, 所以C只能是黑;
  4. A白B白, AB都错误说明正确的是A黑B黑, 又因为A,B都回答了白,所以C只能是黑;

###总结无论怎样C都只能是黑

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!