今日头条php面试题(五)

1. 什么事面向对象?主要特征是什么?

1) 面向对象是程序的一种设计方式,它利于提高程序的重用性,是程序结构更加清晰。 2) 主要特征:封装、继承、多态

1) http 无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页 面不能看做是同一个用户 2) SESSION 保存在服务器端,COOKIE 保存在客户端,SESSION 依赖 COOKIE 进行传 输,如果 COOKIE 被禁用了,SESSION 将不能继续使用

3. HTTP 状态中 302、403、 500 代码含义?

302 重定向、403 服务器拒绝访问、500 服务器内部错误

4. Linux 下建立压缩包,解压缩包的命令。

1) tar czf test.tar.gz test.php 2) tar xzf test.tar.gz

5. 请写出数据类型(int char varchar datetime text)的意思;请问 varchar 和 char 有

什么区别? int 是数字类型,char 固定长度字符串,varchar 实际长度字符串,datetime 日期时间型,text 文本字符串,char 的场地固定为创建表设置的长度,varchar 为可变长度的字符

6. MyISAM 和 InnoDB 的基本区别?

1)在增、删、改和查方面,myisam 要优于 innodb 表引擎,当数据量特别大时,他们的速度 相差不大 2)innodb 支持 myisam 所不具备的事务支持、存储过程,行级锁定等等

<?php
session_start();
echo $sn=session_name();
echo "<br>";
echo $sid=session_id();
echo "<a href='test2.php?{$sn}={$sid}'>url 传递 session</a>";
?>
//PHPSESSIONID=kkkkkaldfjaldfjladsf;

8. isset() 和 empty() 区别,对不同数据的判断结果

1)isset()是判断变量是否存在,是否定义 2)empty()是判断变量的值是否为空.

9. 如何在页面之间传递变量(至少两种方式) ?

1)get 2)post 3)ajax 4)curl 5)cookie 6)session

10. 写出匹配 URL 的正则表达式.

http://www.baidu.com/index.php?id=1&name=user1
(http|ftp):\/\/(www.)?(\S*)(\?\S*\&\S*)?
(.*)\/\/(.*)\?(.*)?

11. 请写出常见的排序算法,并用 PHP 实现冒泡排序,将数组$a = array()按照从小到大的

方式进行排序。 3 2 2 2 1 2 3 1 1 2 1 1 3 $i>$j $tmp=$i; $i=$j; $j=$tmp;

<?php
Function mysort($arr){
For($i=0; $i<count($arr); $i++){
For($j=0; $j<count($arr)-1; $j++){
If($arr[$j] > $arr[$j+1]){
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
}
}
}
Return $arr;
}
$arr=array(3,2,1);
print_r(mysort($arr));
//$a=10 $b=20 $tmp=$a $a=$b $b=$tmp

12.heredoc标记

$str=<<<x
<html>
<head>
    <title></title>
</head>
<body>
    <div>
        <h1>{$name}</h1>
        <h1>{$name}</h1>
        <h1>{$name}</h1>
        <h1>{$name}</h1>
    </div>
</body>
</html>
x;

13.运算符
<?php
$a=0;
$b=4;

if($a=3 || $b=5){
    $a++; //true
    $b++; //5
}

echo $a; //1
echo '<br>';
echo $b; //5
?>

<?php
$a=0;
$b=4;

if($a=3 & $b=4){
    $a++;
    $b++;
}

echo $a;
echo '<br>';
echo $b;

13.web服务器返回的状态码:

1)200 正常响应 2)404 文件找不到 3)302 地址重定向 4)403 拒绝访问 5)500 内部程序错误 6)304 没有更新

14.冒泡排序

function ss($arr){
    for($i=0;$i<count($arr);$i++){
        for($j=$i+1;$j<count($arr);$j++){
            if($arr[$i]>$arr[$j]){
                $x=$arr[$i];
                $arr[$i]=$arr[$j];
                $arr[$j]=$x;
            }
        }
    }
    return $arr;
}