php面试题分享(正在找工作的朋友有福了)

发布时间:2019-10-10编辑:脚本学堂
php面试题分享,找工作的同学有福了,祝大家找到好工作,新年更上一层楼。1.nginx使用哪种网络协议? nginx是应用层 我觉得从下往上的话 传输层用的是tcp/ip 应用层用的是http fastcgi负责调度进程

14. instanceof的作用, 经常在什么设计模式中使用
单例模式,但是其他的模式也会用到

15. 1023用二进制表示, 并简述计算过程
10-2
1023%2=1
511%2 =1
255%2 =1
127%2 =1
63%2 =1
31%2 =1
15%2 =1
7%2 =1
3%2 =1
1%2 =1
0 =0
-------------------------------------------
1023
2^9=<N<2^10
511


k=9
10 9 8 7 6 5 4 3 2 1
1 1 1 1 1 1 1 1 1 1
----------------------
1023 1
1023-1/2=511 1
511-1/2=255 1
255-1/2=127 1
127-1/2=63 1
63-1/2=31 1
31-1/2=15 1
15-1/2=7 1
7-1/2=3 1
3-1/2=1 1
------------------
2-10

只需用将二进制数的各个位上的数从最右边开始,最右边的第一个数乘以二的零次方,第二个数乘以二的一次方,第三个数乘以二的二次方,依次类推可得第n个数乘以二的(n-1)次方,然后把得到的结果相加即可
例如:110011=1*2^0+1*2^1+0*2^2+0*2^3+1*2^4+1*2^5=51
这也可以算是一个公式就是An*2^(n-1) An表示二进制数最右边开始的第n个数,
将第一项第二项第三项一直到第n项用式子An*2^(n-1) 计算出来并加在一起即可

16. 下面php程序输出的内容是什么? 为什么?
 

复制代码 代码如下:
<?php
$str = "aatbbtcc";
@list($a, $b, $c) = explode('t', $str);
echo $a,$b,$c;
?>
 

aabbcc;//'t'不会以t切割字符串,explode之后申城一个array(0=>"aatbbtcc")所以。。。,'t'换成"t"就被切割

17. include和require 分别返回什么错误级别
include会系统警告并继续执行,require会发出系统警告但是会引致致命错误令脚本终止运行

18. 现有一个函数, 有不确定多少个的参数(可能有5个也可能有50个), 如何去定义这个函数
方法一: 不借助php内置函数
方法二: 提示func_num_args() func_get_arg() unc_get_args()
 

复制代码 代码如下:

function param()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs<br />n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "<br />n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />n";
}
}

param(1,2,3,4,5);

/**
 * 例子写完后,本来认为完事了,结果遇到有人问call_user_func_array(),看了一下手册
 * 原来,我上面的那个test函数还可以精简成如下的例子,
 */
 function otest1 ($a)
 {
 echo( '一个参数' );
 }

 function otest2 ( $a,$b)
 {
 echo( '二个参数' );
 }

function otest3 ( $a,$b,$c)
{
 echo( '三个啦' );
}

function otest ()
{
 $args=func_get_args();
 $num=func_num_args();
 call_user_func_array( 'otest'.$num,$args );
}

otest(1,2);

19. 在一个函数(该函数没有return语句)里面去处理全局变量, 并且改变他的值, 用两种方法去实现(global和引用&)
 

复制代码 代码如下:
<?php
$var=1;
function get_pra()
{
global $var;
$var = 'xxx';
echo $var;
}
echo $var.'--';
get_pra();
echo $var;
------------------------
$test = 1;
$test1 = 2;
function get_yinyong()
{
global $test1;
$GLOBALS["test"] = &$test1;
}
echo $test."n";
get_yinyong();
echo $test;
?>

20. 应用中我们经常会遇到在user表随机调取10条数据来展示的情况, 简述你如何实现该功能, 不能使用sql函数以及order by等语句
表 user 字段uid, username

估计一个user表中的区间,在此区间用php去一个随机数,sql语句大于或者小于此id去limit几十条(保证10条数据),再不够散乱的话,取出来的数据shuffle函数打乱数组,array_rand随即取出10个

21. 假设下面的sql语句里面的uid都能获取到具体值, 经过下面语句查询后uid的顺序是什么, 如何去按照uid in 输入的顺序去排序
select uid from user where uid in(10, 1, 3, 8, 11, 4, 7);

可观的结果是1,3,4,7,8,10,11升序,有种情况特殊就是不确定因为中间的某些id人为直接修改可能不是升序了,如果按照uid in的顺序需要重新循环一次根据id获取查询结果数组中的值放进新数组中即可

22. 用PHP将一个字符串中的字母替换成**
preg_replace('/[a-zA-Z]*/','**',$str);
如果指定的字符就可以str_replace('ooxx','**',$str);

23. 下面2.php中打印结果是什么? 为什么? 执行顺序1.php->2.php
cookie,cookie时间就有问题time()+3600

24. 简述php常用的json编码函数, 如何将json解码的时候返回数组

25. mysql 在sql语句中有' / 等词的时候, 要对sql语句的每个具体值做些什么处理
mysql_real_escape_string

26. 如何在php中设置header头信息
header('');

27.有如下几个脚本, 请问2.php的输出结果
1.php
 

复制代码 代码如下:
<?php
setcookie('test', 'cookie_test', 3600);
?>
2.php
<?php
$cookie = isset($_COOKIE['test'])? $_COOKIE['test']: 'cookie';
echo $cookie;
?>

i am here
1
总结
a.如果include或include_once不是在函数或方法中被调用,则输出结果均一样。
b.如果include或 include_once在函数或方法中被调用,则如果想让第二次及以后调用时有结果,则必须用include,而不能用include_once,这一点一定要注意。

28. 简述call_user_func的功能
调用函数或者类里面的函数,返回第一个参数的值。类似的功能call_user_func_array

29. 访假设nginx已经配置server_name www.jb200.com xxx.jb200.com
访问问http://www.jb200.com/index.php和http://xxx.jb200.com/index.php之后
$_SERVER["SERVER_NAME"] 和 $_SERVER["REQUEST_URI"]分别是什么

www.jb200.com xxx.jb200.com
/index.php /index.php

30. linux下某文件的属性为 drwxr-xr-x 用数字表示其权限是
目录权限为755所有者u拥有读写修改权限所属组g拥有读、修改权限所属组之外o的拥有读和修改权限

上一篇:返回列表
下一篇:php程序员面试题分享