首页 > 代码库 > 几道经典容易错的php面试题

几道经典容易错的php面试题

1.这道题问是输出的结果是什么?

*在echo输出的字符串中如果含有函数,则优先输出

 

function  test($a){
   echo  $a+10;

}

$b=10;
echo "function($b)".test($b);// 输出的结果是20function(10)

2.这道题考了运算的的优先级  逻辑运算符的优先级要大于算数运算符

/*
 * 1.考了优先级,||左边是是3  所以的呢    $b=3;这一句是没有执行的,$a是一个布尔型true
 * 2.true布尔型++,输出的还是1  (false  的话输出的还是false)   $b++ 输出的是1
 *所以结果是是输出的1,1
 * */
$c=flase;
$a=0;
$b=0;
if($a=3||$b=3){
    $a++;
    $b++;
}
echo $a.‘<br>‘;
echo$b.‘<br>‘;
echo  $c++;

3.这道题考数组,字符串,文件目录的操作的函数,比较全面

题目:请写一个函数将   "/ a/b/c/d/e.php"    和文件  "a/b/12/34/f.php "的相对路径写出来

取得文件目录路径函数:dirname()

去除左右两边的“/”函数:trim()

将字符串转化为数组的函数:explor()

将数组转化为字符串的函数:implode()

重复输出一个字符串的函数:str_repreat()

 

<?php
//用一个函数来输出$a $b的相对路径
$a=‘/a/b/c/d/e.php‘;
$b=‘/a/b/12/34/f.php‘;


function test($a,$b){
 try{
    //1.转化为数组
      $a=explode(trim(dirname($a),"/"),‘/‘);
      $b=explode(trim(dirname($b),"/"),‘/‘);
    //2.去除相同的部分
    for($i=0;$i<count($b);$i++){
        if($a["$i"]==$b["$i"]){
            unset($a["$i"]);
            unset($b["$i"]);
        }
        else{
            break;
        }
    }
  //3.组合
   return str_repeat(‘../‘,count($b)).implode(‘/‘,$a);
 }catch (ErrorException $e){
     echo $e->getMessage();
 }

}


echo  test($a,$b);

 

4.怎么解决一个大流量大型网站的访问量问题?

答:横向扩展web服务器

 

几道经典容易错的php面试题