首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP技能评测(二)

PHP技能评测(二)

作者头像
PHP学习网
发布2022-08-03 14:05:44
发布2022-08-03 14:05:44
6240
举报
文章被收录于专栏:PHP学习网PHP学习网

作为程序员,无论去哪个公司面试都避免不了做面试题,虽然我和大家一样特讨厌做面试题,但是不做就敲不开公司的大门,所以还是得耐着性子认真对待,抱怨解决不了问题的。

1、每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒? 答:设一瓶酒里的酒价值x,酒瓶价值y,瓶盖价值z,x+y+z=22y=24z=2解得x=0.5,y=1,z=0.5,10/0.5=20,最多可喝20瓶啤酒。 具体步骤如下: 10元买5瓶酒,5个酒瓶,5个瓶盖 4个酒瓶换2瓶酒,3个酒瓶,7个瓶盖 2个酒瓶换1瓶酒,2个酒瓶,8个瓶盖 2个酒瓶换1瓶酒,8个瓶盖换2瓶酒,3个酒瓶,3个瓶盖 2个酒瓶换1瓶酒,2个酒瓶,4个瓶盖 2个酒瓶换1瓶酒,4个瓶盖换1瓶酒,2个酒瓶,2个瓶盖 2个酒瓶换1瓶酒,1个酒瓶,3个瓶盖 借5瓶酒,6个酒瓶,8个瓶盖 6个酒瓶换3瓶酒,8个瓶盖换2瓶酒,还5瓶酒, 没有欠账,没有剩余。 共喝5+2+1+1+2+1+1+1+1+5=20瓶酒。 Update:想了一下,刚才的步骤实在过于繁琐,更新如下: 10元买5瓶酒,借15瓶酒,20个酒瓶,20个瓶盖20个酒瓶换10瓶酒,20个瓶盖换5瓶酒,还15瓶酒,没有欠账,没有剩余。共喝20瓶酒。 2、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹(几乎每个公司面试都有这个,公司也是网上找题的^_^) function _directory($dir) {     $files = array();     if($handle = opendir($dir)) //若没有打开目录句柄会返回一个false;     {         //readdir($handle) 返回目录文件名         while($file = readdir($handle) !== false){ //明确的指出是否全等,因为任何一个目录值的名为false都会终止程序执行,比如目录"0"             if($file != ".." && $file !="."){                 if(is_dir($dir. "/". $file)){                     $files[$file] = _directory($dir. "/". $file);                 }                 else{                     $files[] = $file;                 }             }         }         closedir($handle); //关闭目录句柄         return $files;     } } 3、优化mysql数据库的方法。 避免查询时做数据运算。 避免大量数据的吞吐。 创建索引。 查询时缩减查询范围。 主从分离 选择合适的字段属性(创建表时将字段的宽度设置的竟可能小) 尽量将字段设置为not null(这样执行查询时,不会去比较null值) (索引类型:唯一索引,普通索引,全文索引FULLTEXT,组合索引) 4、针对大流量的网站,您采取什么样的方法解决访问量的问题。 确定硬件是否支持此流量 优化数据库 缓存技术 (前端缓存,redis, memcache后端缓存减少mysql请求) 禁止外部盗链 控制大文件下载 使用负载均衡架构服务器 5、多台服务器如何共享session 1、写客户端Cookie的方式 2、服务器之间Session数据同步的方式 3、利用NFS共享Session数据的方式 4、 利用Mysql数据库共享Session数据的方式

6、PHP性能优化方法和技巧 1、利用缓存模块 2、查询缓存区,从缓存区直接读数据给用户。 3、在php.ini中开启opcache性能加速

【写PHP代码需要注意的】 4、循环内部不要声明变量,尤其是大变量:对象(这好像不只是PHP里面要注意的问题吧?); 5、多维数组尽量不要循环嵌套赋值; 6、foreach效率更高,尽量用foreach代替while和for循环; 7、用单引号替代双引号引用字符串; 8、“用i+=1代替i=i+1。符合c/c++的习惯,效率还高”; 9、对global变量,应该用完就unset()掉; 7、mysql 执行show procedure,发现进程偏多并且80%为sleep状态,请问可能出现的现象和优化方案。 1、持久化链接太多,尽量使用mysql_connect()短链接 2、及时使用mysql_close()关闭链接。 3、查看慢日志对sql进行优化。 4、杀掉sleep的进程。 8、使用PHP实现一个工厂模式类 //要创建对象实例的类 class A{ } class myFactory {     public static factory function()     {         return new A();     } } $instance = myFactory::factory();

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PHP学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档