程序员找工作必备 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 都只能是黑

5年前 评论