php面试题5
php面试题5
一、总结
二、php面试题5
1. 什么事面向对象?主要特征是什么?
1) 面向对象是程序的一种设计方式,它利于提高程序的重用性,是程序结构更加清晰。
2) 主要特征:封装、继承、多态
2. SESSION 与 COOKIE 的区别是什么,请从协议,产生的原因与作用说明?
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 所不具备的事务支持、存储过程,行级锁定等等
7. 不使用 cookie 向客户端发送一个 cookie.
<?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;
10. isset() 和 empty() 区别,对不同数据的判断结果
1)isset()是判断变量是否存在,是否定义
2)empty()是判断变量的值是否为空.
12. 如何在页面之间传递变量(至少两种方式) ?
1)get
2)post
3)ajax
4)curl
5)cookie
6)session
三、PHP 代码题
1. 写出匹配 URL 的正则表达式.
http://www.baidu.com/index.php?id=1&name=user1
(http|ftp):\/\/(www.)?(\S*)(\?\S*\&\S*)?
(.*)\/\/(.*)\?(.*)?
2. 请写出常见的排序算法,并用 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
3. 在数据库 test 中的一个表 student,字段是 name,class,score。分别代表姓名、所
在班级,分数。
1) 算出每个班级中的学生,按照成绩降序排序;
select name,class,score from student order by score desc;
2) 查出每个班的及格人数和不及格人数,格式为:class、及格人数、不及格人数;
SELECT class,
SUM(CASE WHEN score>=60 THEN 1 ELSE 0 END),
SUM(CASE WHEN score<60 THEN 1 ELSE 0 END)
FROM tb1 GROUP BY class
3) 用 PHP 写入连接数据库("localhost","msuser","mspass")、执行以上 SQL、显示结果、
判断错误、关闭数据库的过程
$conn=mysql_connect(‘localhost’,'msuser’,’mspass′);
Mysql_select_db(‘test’);
$sql=" SELECT class,
SUM(CASE WHEN score>=60 THEN 1 ELSE 0 END),
SUM(CASE WHEN score<60 THEN 1 ELSE 0 END)
FROM tb1 GROUP BY class";
if($result=Mysql_query($sql)){
while($row=mysql_fetch_assoc($result)){
print_r($row);
}
}
Mysql_close($conn);
; trans sid support is disabled by default.
; Use of trans sid may risk your users security.
; Use this option with caution.
; - User may send URL contains active session ID
; to other person via. email/irc/etc.
; - URL that contains active session ID may be stored
; in publicly accessible computer.
; - User may access your site with the same session ID
; always using URL stored in browser's history or bookmarks.
; http://php.net/session.use-trans-sid
session.use_trans_sid = 0
如果客户端禁用cookie,可以通过这个在url上加session信息来达到cookie效果,就是登录效果,因为session是通过cookie实现的
在php.ini里面
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;
}
php面试题5的更多相关文章
- .NET面试题系列[8] - 泛型
“可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...
- 关于面试题 Array.indexof() 方法的实现及思考
这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...
- 对Thoughtworks的有趣笔试题实践
记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...
- 从阿里巴巴笔试题看Java加载顺序
一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...
- JAVA面试题
在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...
- C++常考面试题汇总
c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...
- .NET面试题系列[4] - C# 基础知识(2)
2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...
- 我们公司的ASP.NET 笔试题,你觉得难度如何
本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识. 第1-3题会使用到一个枚举类,其定义如下: public enum QuestionType { Text = , ...
- 我设计的ASP.NET笔试题,你会多少呢
本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...
- 猫哥网络编程系列:详解 BAT 面试题
从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...
随机推荐
- Java总结之线程
[线程的基本概念] 线程是一个程序内部的顺序控制流. 线程和进程的差别: 每一个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销. 线程能够看成是轻量级的进程,同一类线程 ...
- Five ways to maximize Java NIO and NIO.2--转
原文地址:http://www.javaworld.com/article/2078654/java-se/java-se-five-ways-to-maximize-java-nio-and-nio ...
- Android 多线程断点续传同时下载多个大文件
最近学习在Android环境中一些网络请求方面的知识,其中有一部分是关于网络下载方面的知识.在这里解析一下自己写的demo,总结一下自己所学的知识.下图为demo的效果图,仿照一些应用下载商城在Lis ...
- Monkey测试执行指导
1.Monkey常规测试
- android audio
package com.javacodegeeks.android.audiocapturetest; import java.io.IOException; import android.media ...
- vim学习2
进入插入模式: 在插入模式下删除: 寄存器
- C8815 用 USB网卡(Asix AX88772 )上网
C8815 用 USB网卡(Asix AX88772 )上网 C8815不支持给USB外设供电,不过可以使用自供电的OTG线带动USB设备 C8815最新固件中没有Asix AX88772驱动,需要自 ...
- 5lession-path路径相关操作
今天开始接触到了文件目录.路径方面的知识点.记录如下 先看代码 #!/usr/bin/python # -*- coding: utf-8 -*- import os import sys curre ...
- amaze样例页面分析(一)
amaze样例页面分析(一) 一.总结 1.从审查(inspect)中是很清楚的可以弄清楚这些part之间的结构关系的 2.一者在于弄清楚他们之间的结构关系,二者在于知道结构的每一部分是干嘛的 3.i ...
- (JavaScript基础向)sort()方法里的排序函数的理解
比较常见的解释可以看这里:js的sort()方法,这篇博客写得挺好的,一般的应用的理解已经足够了. 但是如果要活用sort()方法里面的参数——也就是排序函数的话,可能就比较难理解了. 然后我就总结出 ...