【Day24】几道值得研究注意的php相关问题(二)

    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); 




/** 
2 * 例子写完后,本来认为完事了,结果遇到有人问call_user_func_array(),看了一下手册 
3 * 原来,我上面的那个test函数还可以精简成如下的例子, 
4 */ 
5 function otest1 ($a) 
6 { 
7 echo( '一个参数' ); 
8 } 
9 
10 function otest2 ( $a,$b) 
11 { 
12 echo( '二个参数' ); 
13 } 
14 
15 function otest3 ( $a,$b,$c) 
16 { 
17 echo( '三个啦' ); 
18 } 
19 
20 function otest () 
21 { 
22 $args=func_get_args(); 
23 $num=func_num_args(); 
24 call_user_func_array( 'otest'.$num,$args ); 
25 } 
26 
27 otest(1,2); 
19. 在一个函数(该函数没有return语句)里面去处理全局变量, 并且改变他的值, 用两种方法去实现(global和引用&) 

$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.如果includeinclude_once不是在函数或方法中被调用,则输出结果均一样。 
b.如果includeinclude_once在函数或方法中被调用,则如果想让第二次及以后调用时有结果,则必须用include,而不能用include_once,这一点一定要注意。 
28. 简述call_user_func的功能 


调用函数或者类里面的函数,返回第一个参数的值。类似的功能call_user_func_array 
29. 访假设nginx已经配置server_name www.120.net xxx.120.net 
访问问http://www.120.net/index.php和http://xxx.120.net/index.php之后 
$_SERVER["SERVER_NAME"] 和 $_SERVER["REQUEST_URI"]分别是什么 


www.120.net xxx.120.net 
/index.php /index.php 
30. linux下某文件的属性为 drwxr-xr-x 用数字表示其权限是 


目录权限为755所有者u拥有读写修改权限所属组g拥有读、修改权限所属组之外o的拥有读和修改权限 
31. 宽带的1Mbps理论上的下载速度是多少KBps, 计算的方法 


1*1024/8 


1M=1024KB 
1KB=1024B 
1B=8bit 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值