php面试宝典01



1.用最优的方法判断两个字符串是否相等

function mystrcomp($str1,$str2){ 
  if($str1 == $str2){ 
    return TRUE; 
  }else{ 
    return FALSE; 
  } 
} 
网友做了一个这样的测试:

0){
	$i--;
	if($a==$b) ;
}
$time2 = microtime(true);
while($j>0){
	$j--;
	if(strcmp($a,$b));
}
$time3 = microtime(true);

echo ($time2-$time1).'\n'; //运行结果 0.2440140247345
echo ($time3-$time2);      //运行结果 0.76804399490356

?>


2.请用最优的方式获取当前文件的目录

$dir = dirname(__FILE__);
之后可以使用以下方式引入文件 
define('ROOT', $dir); 
require_once ROOT.'/config/conf_mysql.php';


3.请列举一些php的危险函数,并说明禁用方法
打开/etc/php.ini文件,查找到 disable_functions ,添加需禁用的函数名,如下:
phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
函数的具体含义请参考这个网址:
http://mt.sohu.com/20160816/n464464648.shtml
4.请计算下面的值
++在前,则先加1
++在后,则后加1
$i=$j=0;
echo $i++;     // 0
echo $i;       // 1
echo "
";   
echo ++$j;    // 1
echo $j;      // 1


5.实现一个定时30秒去执行一条sql语句
@1.使用代码执行
@2.使用存储过程执行
@3.使用电脑自带的计划任务执行sql语句
@4.其它工具


6.设计一种方案保证用户能永久登陆
主要思想是:在用户表里面新增一个cookie MD5码值和过期时间字段,把MD5码值与 MD5(用户名)关联存入客户端cookie中。
用户每次新访问系统,都刷新一次过期时间与MD5值,只要用户在规定的时间内使用系统都可以保证能验证成功。
参考网址:http://www.phpddt.com/manual/php-security/new_item46.htm


7.在数据表使用innodb引擎时,没有备份数据的情况下,怎么恢复最近的数据
主要的原理就是利用:在保证ibdata1数据文件,要恢复的数据库的表结构存在,Innodb引擎索引数据的原理来对数据空间文件的数据进行提取。
参考方法网址:http://bobao.360.cn/learning/detail/3316.html


8.多台服务器如何共享session
主要方案有:
1.cookie携带
2.通过算法实现用户每次当问都命中同一台服务器
3.存入公共数据库中(各种数据库)
4.建立session公共服务组建
详细介绍参考:http://www.cnblogs.com/wangtao_20/p/3395518.html


9.请写出以下语句的输出
$arr=[
'1'=>1,
1=>2
];
var_dump($arr);
//输出结果为:
{[1]=>  int(2)}

分析原因:在数组操作中,数值型字符key,会被隐试转换为数值型。



10.请写出以下语句的输出
echo  ‘2’.print (2)+3;
结果:521
分析:
1. print 不是一个函数,是一个执行表达式,后面可以跟一个表达式,所有会执行print (2)+3等价于print(2+3)打印输出5
2.同时print执行成功会返回1,结果为521


echo ('2'.print (2))+3;
结果:224
分析:
1.因为print被括号括起来了,提高了优先级和运算范围,先执行print(2)打印输出2
2.同时print执行成功返回1,‘2’.1+3为24,所有结果展示为224



你可能感兴趣的:(php面试宝典)