php面试题目
PHP测试小例
1、 禁用COOKIE 后 SEESION 还能用吗?
Cookie 是保存在浏览器
1、cookie是保存在本地的,而seesion是保存在服务器上的。所以两者没有直接的关系,禁用cookie后seesion依然可以用。
session是在服务器端保持用户会话数据的一种方法,对应的cookie是在客户端保持用户数据。HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系,最早,Netscape将cookie引入浏览器,使得数据可以客户端跨页面交换,那么服务器是如何记住众多用户的会话数据呢?
首先要将客户端和服务器端建立一一联系,每个客户端都得有一个唯一标识,这样服务器才能识别出来。建议唯一标识的方法有两种:cookie或者通过GET方式指定。默认配置的PHP使用session的时会建立一个名叫”PHPSESSID”的cookie(可以通过php.ini修改session.name值指定),如果客户端禁用cookie,你也可以指定通过GET方式把session id传到服务器(修改php.ini中session.use_trans_sid等参数)。<a
href=”p.php?<?php print session_name() ?>=<?php print session_id()
?>”>xxx</a>,也可以通过POST来传递session值.
2、用最少的代码写一个求3值最大值的函数(不用php自身函数).
<?php
//echo max(200,10,1,2,300);//php本身自带的函数
function gmax(){
$args=func_get_args();//获得数组里面
$i=array_shift($args);//移除数组中的第一个数据
foreach ($args as $v){
$i=$i<$v ? $v : $i;
}
return $i;
}
echo gmax(444,454,1212).'<br>';//1212
echo gmax(444,454,1212,77,454545).'<br>';//454545
echo gmax(1,5,2,8,3,8,78).'<br>';//8
3、<input
id="txt" type="text" value="baidu" />编写代码,当鼠标划过文本框,自动选中文本框中的内容。
4、表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
select
(case when a > b then a else case when B > C then B else C end end) from
test
5、echo count(“abc”); 输出什么?
count 为计算数组中的元素个数
1
count —计算数组中的单元数目或对象中的属性个数
int count (mixed$var [, int$mode ] ), 如果 var 不是数组类型或者实现了Countable
接口的对象,将返回 1,有一个例外,如果 var 是NULL 则结果是 0。
对于对象,如果安装了 SPL,可以通过实现Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count() 函数的返回值。
6、程序分析1:
/**** 这个程序****/
$a=0;
$b=0;
if(($a=3)>0||($b=3)>0){
$a++;
$b++;
echo
$a ;
echo
$b;
}结果是什么
4,1
7、程序分析2
$s = 'abc';
if ($s==0)
echo
'is zero<br>';
else
echo
'is not zero<br>';结果是什么
is zero
8、用PHP写一段代码,实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定。
<?php
$a=0;
$b=5;
list($a,$b)=[$b,$a];
echo $a.'<br>';
echo $b.'<br>';
方案一:适用于变量为数字的
$a =1;
$b =2;
$a = $a+$b; //$a=3,$b=2;
$b = $a-$b; //$a=3,$b=1;
$a = $a-$b; //$a=2,$b=1;
方案二:使用所有的变量
$a = 'abc';
$b = 'def';
list($a,$b) = array($b,$a);
// list ()— 把数组中的值赋给一些变量
echo $a,$b;方案一:适用于变量为数字的
$a =1;
$b =2;
$a = $a+$b; //$a=3,$b=2;
$b = $a-$b; //$a=3,$b=1;
$a = $a-$b; //$a=2,$b=1;
方案二:使用所有的变量
$a = 'abc';
$b = 'def';
list($a,$b) = array($b,$a);
// list ()— 把数组中的值赋给一些变量
echo $a,$b;
9、一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号
<?php
$m=3;//3为要移除的位置
$n=10;//总共有15个数字
for($i=1;$i<=$n;$i++){
$num[$i]=$i;
}
$t=0;
//先来个死循环因为不知道执行多少次
while (true){
foreach ($num as $k=>$v){
++$t;
if($t==$m){
unset($num[$k]);
$t=0;
}
}
if(count($num)==1){
break;
}
}
echo end($num);
<?php
function fn($n ,$m)
{
//构造数组
//for($i=1 ;$i<$m+1 ;$i++){
// $arr[] = $i ;
//}
$arr = array(1,2,3,4,5,6,7,8);
$i = 0 ; //设置数组指针
print_r($arr);
while(count($arr)>1)
{
//遍历数组,判断当前猴子是否为出局序号,如果是则出局,否则放到数组最后
echo $i;
if(($i+1) % $m ==0) {
unset($arr[$i]);
} else {
//
array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
array_push($arr ,$arr[$i]); //本轮非出局猴子放数组尾部
unset($arr[$i]); //删除
}
$i++;
}
return $arr;
}
print_r(fn(15,12));
?>
10、简单阐述网站优化的思路,可以从服务器,数据库,缓存着手
一、web前端服务器
1、提升浏览器访问性能
a、减少http访问请求
b、压缩css,js,图片
c、使用浏览器缓存
2、CDN加速
使用内容分发网络,让访问用户访问离他最近的CDN静态缓存服务器。提供系统访问性能。
3、web代理
二、应用服务器
1、分布式缓存服务器
常用的有memcached.
2、集群、负载均衡
可以使用开源软件apache.
3、异步处理
通过执行线程可以进行异步,后续任务通过消息队列继续执行。
4、代码优化
三、数据库服务器
1、索引
2、视图
3、控制投影查询
以上是网站性能优化基本思路,在日常网站运营过程中,网站优化的第一关键是服务器缓存,缓存是解决性能问题的主要因素,但是很多网站设计都没有加入服务器缓存策略。
设计模式
工厂模式,单例模式,适配器模式,代理模式
缩略图采用的代理模式
设计模式是一套反复使用,大多数公司和开发人员都知晓的解决问题的经验总结
php面试题目的更多相关文章
- HTML/CS3相关面试题目
一.HTML/CS3基本面试题目. 1. 常用那几种浏览器测试? 1.1浏览器:IE,Chrome(谷歌),FireFox(火狐),Safari(苹果计算机的最新操作系统Mac OS X中的浏览器,使 ...
- PHP面试题目搜集
搜集这些题目是想在学习PHP方面知识有更感性的认识,单纯看书的话会很容易看后就忘记. 曾经看过数据结构.设计模式.HTTP等方面的书籍,但是基本看完后就是看完了,没有然后了,随着时间的推移,也就渐渐忘 ...
- 总结CSS面试题目的考察点及常见布局问题整理
整理网上流传的若干份面试题目,突发奇想,总结关于CSS面试题目的考察点,发现问题大多围绕几个属性和几种题目,水平有限,仅供参考. 写这个博文内心有种莫名奇妙的自我谴责感,实在不应该把面试层叠样式“应试 ...
- 【转】asp.net c# 网上搜集面试题目大全(附答案)
asp.net c# 网上搜集面试题目大全(附答案) http://www.cnblogs.com/hndy/articles/2234188.html
- 2016年Web前端面试题目汇总
转载: 2016年Web前端面试题目汇总 以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中未解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢 ...
- 33条C#、.Net经典面试题目及答案
33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如".NET中类和结构的区别"."ASP.NET页面之间传递值的几种方式? ...
- 33条C#、.Net经典面试题目及答案[zt]
33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如“.NET中类和结构的区别”.“ASP.NET页面之间传递值的几种方式?”,并简明扼要的给出了答案,希 ...
- C/C++ 笔试、面试题目大汇总 转
C/C++ 笔试.面试题目大汇总 这些东西有点烦,有点无聊.如果要去C++面试就看看吧.几年前网上搜索的.刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善. 1.求下面函数的返回值( ...
- Android面试题目及其答案
转自:http://blog.csdn.net/wwj_748/article/details/8868640 Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应 ...
- POPTEST学员就业面试题目!!!!!
POPTEST学员就业面试题目!!!!! poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.(欢迎大家咨询软件测试工程师就业培训 ...
随机推荐
- Docker 官网信息
Docker Engine Docker-for-linuxhttps://docs.docker.com/engine/installation/linux/rhel/https://docs.do ...
- linux 1-100的累加
[ ] 判断式.它的使用和test命令一样 [ ]的判断符,只会返回2种值.0(真) 非0(假) -gt 大于-lt 小于-eq 等于-ne 不等于-ge 大于等于-le 小于等于 while ...
- php mysql 一个查询优化的简单例子
PHP+Mysql是一个最经常使用的黄金搭档,它们俩配合使用,能够发挥出最佳性能,当然,如果配合Apache使用,就更加Perfect了. 因此,需要做好对mysql的查询优化.下面通过一个简单的例子 ...
- web异常流量定位:iftop+tcpdump+wireshark
一个简单的运维小经验. 场景:web服务器出现异常流量,web集群内部交互出现大流量,需要定位具体的http请求,以便解决问题. 目的:找出产生大流量的具体http请求. 工具: ift ...
- [PHP] - Laravel - CSRF token禁用方法
前文 CSRF攻击和漏洞的参考文章: http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html Laravel默认是开启了CSRF功能, ...
- Java借助Runtime调用外部程序阻塞的代码
有时候在java代码中会调用一些外部程序,比如SwfTools来转换swf.ffmpeg来转换视频等.如果你的代码这样写:Runtime.getRuntime().exec(command),会发现程 ...
- Node.js的循环与异步问题
(转自:http://bbs.tianya.cn/post-itinfo-280080-1.shtml) Node.js 的异步机制由事件和回调函数实现,一开始接触可能会感觉违反常规,但习惯 以后就会 ...
- Percona Toolkit 使用
安装 percona-toolkit perl Makefile.PL make make test make install 默认安装到 /usr/local/bin 目录下 可能需要 DBI-1. ...
- Java计算上下基线
public class GetAverageandStandardDevition { static List<Long> list = new ArrayList<Long> ...
- UIButton的titleLabe setAttributeSting 首次不起作用
环境xcode7.3 ios9.3 真机模拟器均出现 UIButton的titleLabe setAttributeSting 首次不起作用,之后每一次 都正常,百思不得解,无奈之下改变策略,讲but ...