php程序员面试题(附答案)(精选9篇)
PHP面试题附答案
1. Which of the following will not add john to the users array?
1. \(users[] = ‘john’;</p> <p>2. array_add(\)users,’john’);
3. array_push(\(users,’john’);</p> <p>4. \)users ||= ‘john’;
Answer: 2,4
2. What’s the difference between sort, asort() and ksort(),rsort()? Under what circumstances would you use each of these?
sort(): 本函数对数组的值进行排序,当本函数结束时数组单元将被从最低到最高重新安排,array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。
asort(): 这个函数将数组的值重新排序,由小至大排列。数组的索引亦跟着值的 顺序而变动。当您在程序中需要重新整理数组值的 顺序时,就可以使用这个函数。
ksort(): 对数组按照键名排序,保留键名到数据的关联。本函数主要用于关联数组。
rsort(): 本函数对数组进行逆向排序(最高到最低)。与sort()执行相反的操作。
3. What would the following code print to the browser? Why?
\(num = 10;</p> <p>function multiply(){</p> <p>\)num = \(num * 10;</p> <p>}</p> <p>multiply();</p> <p>echo \)num;
10
4. What is the difference between a reference and a regular variable? How do you pass by reference & why would you want to?
pass by reference like this functions(&\(vars);</p> <p>it likes more fast;</p> <p>5. What functions can you use to add library code to the currently running script?</p> <p>inlcude() or require();</p> <p>6. What is the difference between foo() & @foo()?</p> <p>if foo() throw a error, will be alert, but @foo() no;</p> <p>7. How do you debug a PHP application?</p> <p>xdebug or use die() do it;</p> <p>8. What does === do? What’s an example of something that will give true for ‘==’, but not ‘===’?</p> <p>=== 用于精确比较 ex: (” == null) => true but ( ”===null) =>false;</p> <p>9. How would you declare a class named “myclass” with no methods or properties?</p> <p>class myclass{</p> <p>}</p> <p>10. How would you create an object, which is an instance of “myclass”?</p> <p>\)myoject = new myclass();
11. How do you access and set properties of a class from within the class?
getVar() or setVar() ;
12. What is the difference between include & include_once? include & require?
require:PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的.一部份,
常用的函式,亦可以这个方法将它引入网页中。错误产生致命错误。
include:这个函式一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。错误产生警报。
include_once:此行为和include()语句类似,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含。如同此语句名字暗示的那样,只会包含一次。
13. What function would you use to redirect the browser to a new page?
1. redir()
1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:©,如果为读取的内容进行处理后再输出,需要使用下列哪种流?(g)
A、输入流和输出流 B、字节流和字符流 C、节点流和处理流
D、File stream E、Pipe stream F、Random stream G、Filter stream
2.下列代码的执行结果是:(b)
public class Test3{
public static void main(String args[]){
System.out.print(100%3);
System.out.print(“,”);
System.out.println(100%3.0);
}
}
A、1,1
B、1,1.0
C、1.0,1
D、1.0,1.0
3.在继承中,关于构造方法的说明,下列说法错误的是(d)
A、子类无条件的继承父类的无参构造方法,
B、子类可以引用父类中的有参构造方法,使用super关键字,
C、如果子类没有构造方法,则父类无参构造方法作为自已的构造方法,
D、如果子类有无参构造方法,而父类的无参构造方法则被覆盖。
4.以下程序的运行结果为( b)
public class IfTest{
public static void main(String args[]){
int x=3;
int y=1;
if(x==y)
System.out.println(“Not equal”);
else
System.out.println(“Equal”);
}
}
A、Not equal B、Equal C、无输出 D、编译出错
5.Java语言中字符串“学Java”所占的内存空间是(a)
A. 6个字节
B. 7个字节
C. 10个字节
D. 11个字节
6.关于下列程序段的输出结果,说法正确的是:(d )
public class MyClass{
static int i;
public static void main(String argv[]){
System.out.println(i);
}
}
A、有错误,变量i没有初始化。
B、null
C、1
D、0
7.下列哪些语句关于内存回收的说明是正确的? (b )
A、 程序员必须创建一个线程来释放内存
B、 内存回收程序负责释放无用内存
C、 内存回收程序允许程序员直接释放内存
D、 内存回收程序可以在指定的时间释放内存对象
8.下面异常是属于Runtime Exception 的是(abcd)(多选)
A、ArithmeticException
B、IllegalArgumentException
C、NullPointerException
D、BufferUnderflowException
9. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少©. c
A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12
10.下列程序段的输出结果是:(b )
void complicatedexpression_r(){
int x=20, y=30;
boolean b;
b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;
System.out.println(b);
}
A、true B、false C、1 D、0
11.activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d)
A、onPause() B、onCreate() C、 onResume() D、onStart()
12.Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选)
A、Serializable B、charsequence C、Parcelable D、Bundle
13.android 中下列属于Intent的作用的是©
A、实现应用程序间的数据共享
B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失
C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带
D、处理一个应用程序整体性的工作
14.下列属于SAX解析xml文件的优点的是(b)
A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能
B、不用事先调入整个文档,占用资源少
C、整个文档调入内存,浪费时间和空间
D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会
消失
15.下面的对自定style的方式正确的是(a)
A、
B、
C、
fill_parent
D、
16.在android中使用Menu时可能需要重写的方法有(ac)。(多选)
A、onCreateOptionsMenu()
B、onCreateMenu()
C、onOptionsItemSelected()
D、onItemSelected()
17.在SQL Server Management Studio 中运行下列T-SQL语句,其输出值©。
SELECT @@IDENTITY
A、 可能为0.1
B、 可能为3
C、 不可能为-100
D、 肯定为0
18.在SQL Server 中运行如下T-SQL语句,假定SALES表中有多行数据,执行查询之 后的结果是(d)。
BEGIN TRANSACTION A
Update SALES Set qty=30 WHERE qty<30
BEGIN TRANSACTION B
Update SALES Set qty=40 WHERE qty<40
Update SALES Set qty=50 WHERE qty<50
Update SALES Set qty=60 WHERE qty<60
COMMIT TRANSACTION B
COMMIT TRANSACTION A
A、SALES表中qty列最小值大于等于30
B、SALES表中qty列最小值大于等于40
C、SALES表中qty列的数据全部为50
D、SALES表中qty列最小值大于等于60
19.在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数 据库版本进行管理的方法可以是(ab)
A、getWriteableDatabase()
B、getReadableDatabase()
C、getDatabase()
D、getAbleDatabase()
20. android 关于service生命周期的onCreate()和onStart()说法正确的是(ad)(多选题)
A、当第一次启动的时候先后调用onCreate()和onStart()方法
B、当第一次启动的时候只会调用onCreate()方法
C、如果service已经启动,将先后调用onCreate()和onStart()方法
D、如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法
21.下面是属于GLSurFaceView特性的是(abc)(多选)
A、管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图
view上。
B、管理一个EGL display,它能让opengl把内容渲染到上述的surface上。
C、让渲染器在独立的线程里运作,和UI线程分离。
D、可以直接从内存或者DMA等硬件接口取得图像数据
22.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的是(a)
A、
android:name=”android.provider.action.NewBroad“/>
B、
android:name=”android.provider.action.NewBroad”/>
C、
android:name=”android.provider.action.NewBroad“/>
D、
android:name=”android.provider.action.NewBroad”/>
23.关于ContenValues类说法正确的是(a)
A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的
名是String类型,而值都是基本类型
B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的
名是任意类型,而值都是基本类型
C、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的
名,可以为空,而值都是String类型
D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中
的名是String类型,而值也是String类型
24.我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器
就会变得越慢,那么线程销毁的方法是(a)
A、onDestroy()
B、onClear()
C、onFinish()
D、onStop()
25.下面退出Activity错误的方法是©
A、finish()
B、抛异常强制退出
C、System.exit()
D、onStop()
26.下面属于android的动画分类的有(ab)(多项)
A、Tween B、Frame C、Draw D、Animation
27.下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是(d)
A、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立
的Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念.
B、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立
的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念.
C、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的
Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念.
D、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的
Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念.
28.Android项目工程下面的assets目录的作用是什么b
A、放置应用到的图片资源。
B、主要放置多媒体等数据文件
C、放置字符串,颜色,数组等常量数据
D、放置一些与UI相应的布局文件,都是xml文件
29..关于res/raw目录说法正确的是(a
A、 这里的文件是原封不动的存储到设备上不会转换为二进制的格式
B、 这里的文件是原封不动的存储到设备上会转换为二进制的格式
C、 这里的文件最终以二进制的格式存储到指定的包中
D、 这里的文件最终不会以二进制的格式存储到指定的包中
30.下列对android NDK的理解正确的是(abcd )
A、 NDK是一系列工具的集合
B、 NDK 提供了一份稳定、功能有限的 API 头文件声明。
C、 使 “Java+C” 的开发方式终于转正,成为官方支持的开发方式
D、 NDK 将是 Android平台支持 C 开发的开端
二.填空题(每题2分,共20分)
1.我们用int_来定义一个整数,用char_来定义一个字符类型,称为原始数据类型。
2.android中常用的四个布局是framlayout,linenarlayout,relativelayout和tablelayout。
3.android 的四大组件是activiey,service,broadcast和contentprovide。
4.java.io包中的objectinputstream和objectoutputstream类主要用于对对象(Object)的读写。
5.android 中service的实现方法是:startservice和bindservice。
6.activity一般会重载7个方法用来维护其生命周期,除了onCreate(),onStart(),onDestory() 外还有onrestart,onresume,onpause,onstop。
7.android的数据存储的方式sharedpreference,文件,SQlite,contentprovider,网络。
8.当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行
的回调函数是startActivityResult()。
9.请使用命令行的方式创建一个名字为myAvd,sdk版本为2.2,sd卡是在d盘的根目录下,
名字为scard.img, 并指定屏幕大小HVGA._________________________________。
10.程序运行的结果是:good and gbc________。
public class Example{
String str=new String(“good”);
char[]ch={‘a’,b’,c’};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+” and “);
Sytem.out.print(ex.ch);
}
public void change(String str,char ch[]){
str=”test ok”;
ch[0]=’g;
}
}
三 简答编程题(共35分)
1.在android中,请简述jni的调用过程。(8分)
1)安装和下载Cygwin,下载 Android NDK
2)在ndk项目中JNI接口的设计
3)使用C/C++实现本地方法
4)JNI生成动态链接库.so文件
5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可
2.简述Android应用程序结构是哪些?(7分)
Android应用程序结构是:
Linux Kernel(Linux内核)、Libraries(系统运行库或者是c/c++核心库)、Application
Framework(开发框架包)、Applications (核心应用程序)
3. 请继承SQLiteOpenHelper实现:(10分)
1).创建一个版本为1的“diaryOpenHelper.db”的数据库,
2).同时创建一个 “diary” 表(包含一个_id主键并自增长,topic字符型100
长度, content字符型1000长度)
3).在数据库版本变化时请删除diary表,并重新创建出diary表。
public class DBHelper extends SQLiteOpenHelper {
public final static String DATABASENAME = “diaryOpenHelper.db”;
public final static int DATABASEVERSION = 1;
//创建数据库
public DBHelper(Context context,String name,CursorFactory factory,int version)
{
super(context, name, factory, version);
}
//创建表等机构性文件
public void onCreate(SQLiteDatabase db)
{
String sql =”create table diary”+
“(“+
“_id integer primary key autoincrement,”+
“topic varchar(100),”+
“content varchar(1000)”+
“)”;
db.execSQL(sql);
}
//若数据库版本有更新,则调用此方法
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)
{
String sql = “drop table if exists diary”;
db.execSQL(sql);
this.onCreate(db);
}
}
4.页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度
显示工作。(10分)
答案
public class ProgressBarStu extends Activity {
private ProgressBar progressBar = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progressbar);
//从这到下是关键
progressBar = (ProgressBar)findViewById(R.id.progressBar);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
int progressBarMax = progressBar.getMax();
try {
while(progressBarMax!=progressBar.getProgress())
{
int stepProgress = progressBarMax/10;
int currentprogress = progressBar.getProgress();
progressBar.setProgress(currentprogress+stepProgress);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
thread.start();
//关键结束
}
}
答案:
一、选择题
1 2 3 4 5 6 7 8 9 10
CG B D B A D B ABCD C B
11 12 13 14 15 16 17 18 19 20
D ABCD C B A AC C D AB AD
21 22 23 24 25 26 27 28 29 30
ABC A A A C AB D B A ABCD
二、填空题
1. int char
2.FrameLayout,LilnearLayout,RelativeLayout,TableLayout
3.Activity,Broadcast,Service,ContentProvide
4.ObjectInputStream ObjectOutputSteam
5.startService ,bindService
6.onRestart(),onResume(),onPause(),onStop()
7.SharedPreferences存储,文件存储,SQLite存储,ContentProvider,网络存储
8.startActivityResult()
9.adnroid create acd -n myAvd -t 8 -s HVDA – C d:card.img
1、请列举你能想到的UNIX信号,并说明信号用途,
2、请列举、你能想到的所有的字符串查找算法,并加注释简单说明。
3、有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。
4、写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面)
基础任务-选作(会得到额外分数):
1、画几个你最熟悉的SERVER端模型出来(格式不重要,尽量将图画清楚,说明思路即可)
进阶任务:
1、PHP的垃圾收集机制是怎样的?
说明:
1)如果,你熟悉PHP源码,那么请从源码入手,回答些问题,会获得额外加分
2)如果,你不熟悉PHP源码,那么尽你所能,多写点东西,包括利用自己的编程直觉得到的信息,都可以。
3)对,则有分,错误不扣,不写无分。
2、请写出HTTP头,并符合以下要求:
1)这是一个post请求
2)目标:www.example.com:8080/test
3)POST变量:
username: test
pwd: test2
intro: Hello world!
4)包含以下COOKIE信息:
cur_query: you&me
说明:
1)如果,你记不得某个HTTP协议中的指令字了,那么,无奈这举是用“汉字”代替,
2)如果,你能记住更多的HTTP协议指令字,那么多写几句,总是没坏处,对吧?
3)最关键的,只需要画出正确的“轮廓”(还记得httpwatch等工具打印出来的头部吗?那就是“轮廓”的含义),也会有分数,但如果,连“轮廓”都写错了,那么就很遗憾了。
编程任务:
1、我们碰到了 烦,一个新来的传教士惹恼了上帝,上帝很愤怒,要求我们把圣经(bbe.txt)背熟,直至他说哪个单词,我们就要飞快的回答出这个单词在第几行第几个单词位置。听说你是个优秀的程序员,那么髟助我们完成这个不可能的任务吧。
要求如下:
1)/myworks/example/bbe.txt,98版本英文圣经一本
2)输入部分要求如下:php https://www.360wenmi.com/f/example.php [单词]
3)输出部分如下:[单词] 1,2 2,4 5,6 表示:此单词在1行2列(第二个单词),2行4列…
说明:
1)此文本4MB之巨…
2)单词的含义:由英文字母(大小写),数字(0-9)组成的串
3)提供给你的机器OS为ubuntu 9.10,内存只有1G,而且,很不幸的,其中700M用来做了别的
4)上机考试不允许上网,但我装了man文档以及读取CHM以及PDF的阅读器,在电脑的桌面的CHM文件夹中,有相应的PHP参考手册
5)算法复杂度要求不能大于O(N^2)(就是N的平方)
说在前面:
1、以下题目,除了编程任务外其他都需要写在给你提供的草纸上。纸张是珍贵的地球资源,请节约使用。编程任务在有相应的环境时,会要求上机书写,实在没有条件,就只能写在草纸上了。2、时间:
基础任务+进阶任务+设计任务 = 90分钟 编程任务 = 60分钟 基础任务:
1、请列举你能想到的UNIX信号,并说明信号用途。
2、请列举、你能想到的所有的字符串查找算法,并加注释简单说明。3、有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。
4、写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面)
基础任务-选作(会得到额外分数):
1、画几个你最熟悉的SERVER端模型出来(格式不重要,尽量将图画清楚,说明思路即可)进阶任务:
1、PHP的垃圾收集机制是怎样的?
说明:
1)如果,你熟悉PHP源码,那么请从源码入手,回答些问题,会获得额外加分
2)如果,你不熟悉PHP源码,那么尽你所能,多写点东西,包括利用自己的编程直觉得到的信息,都可以。
3)对,则有分,错误不扣,不写无分。2、请写出HTTP头,并符合以下要求:
1)这是一个post请求
2)目标:http://:8080/test
3)POST变量:
username: test
pwd: test2
intro: Hello world!
4)包含以下COOKIE信息:
cur_query: you&me
说明:
1)如果,你记不得某个HTTP协议中的指令字了,那么,无奈这举是用“汉字”代替。
2)如果,你能记住更多的HTTP协议指令字,那么多写几句,总是没坏处,对吧?
3)最关键的,只需要画出正确的“轮廓”(还记得httpwatch等工具打印出来的头部吗?那就是“轮廓”的含义),也会有分数,但如果,连“轮廓”都写错了,那么就很遗憾了。设计任务:
1、最近总有人骚扰我们的投票模块,需要你来设计一个投票限制的东东
要求如下:
1)要求每个号码(假设此号码在UNIT32内可以表示)10分钟这内只能投5票。
2)我们的用户很踊跃,平均每天要有2000万人左右通过此程序投票。
说明:
1)无需写代码,只需要图跟文字即可。
2)对于关键逻辑,请用图加代码表示出来,这也是对你文字表达能力的一个考验。
3)对你能想到的所有的边界条件列出来,这是对你逻辑思维全面与敏捷性的考验。
4)存储部分,尽你所能吧。如果,你需要一个自己设计的存储层,那么把这个存储层的实现,用文字+图片方式描述清楚,要是设计合理,你会获得华丽的奖分。编程任务:
1、我们碰到了**烦,一个新来的传教士惹恼了上帝,上帝很愤怒,要求我们把圣经(bbe.txt)背熟,直至他说哪个单词,我们就要飞快的回答出这个单词在第几行第几个单词位置。听说你是个优秀的程序员,那么髟助我们完成这个不可能的任务吧。
要求如下:
1)/myworks/example/bbe.txt,98版本英文圣经一本
2)输入部分要求如下:phphttps://www.360wenmi.com/f/example.php [单词]
3)输出部分如下:[单词] 1,2 2,4 5,6 表示:此单词在1行2列(第二个单词),2行4列…说明:
1)此文本4MB之巨…2)单词的含义:由英文字母(大小写),数字(0-9)组成的串
3)提供给你的机器OS为ubuntu 9.10,内存只有1G,而且,很不幸的,其中700M用来做了别的
4)上机考试不允许上网,但我装了man文档以及读取CHM以及PDF的阅读器,在电脑的桌面的CHM文件夹中,有相应的PHP参考手册
5)算法复杂度要求不能大于O(N^2)(就是N的平方)
一、应该介绍自己掌握的开发一种,主要介绍php语言的独特语法以及如何使用,比如PHP语言会比CGI更快的执行动态页面。
二、必须熟悉Oracle、Mysql等数据库,并能简单的介绍自己掌握的程度。由于php做出的动态页面比用其他语言做出来的页面在执行效率以及CGI方面高得多,所以你还需要在面试中说出自己的文档撰写能力很强。
三、PHP程序员应该具备独立分析和解决问题的能力,可以在自我介绍中讲讲自己曾经遇到过的问题是如何解决的。让面试官看到你的能力,这将会直接影响到你自我介绍的成功与否。
四、一个PHP程序员必须有良好的职业道德和工作态度,所以在面试中应该尽量讲自己在做项目时的认真态度以及今后的工作规划,表现出自己的进取心。
五、还有关于沟通能力和理解能力的体现,这个在与HR的交谈中就可以表现出来,所以需要做的工作就是从容的有条理的把自我介绍说完,回答每一个问题时都应该简洁明了,关于自我介绍可以提前做个草稿,背一下。
六、团队合作能力也是企业非常看重的,在培训中老师一般都会带领大家做项目,大的项目一般会分小组,每个人都有相对应的任务,这就模拟了公司中的团队合作,在自我介绍过程中要把做项目的具体流程以及相互协作的过程说出来,让HR看到自己具备团队合作的能力。
七、最后就是执行力,每当任务分配下来的时候该如何执行,还有自己讲过职业规划后该如何执行,还有在学习的过程中是如何人字形的,遇到困难又是如何执行的,这些都可以体现出php程序员的执行力,回答的时候抓住发现及时寻找原因,快速展开行动的这个主线即可。
1.echo count(“abc”);输出什么?
2.用PHP写出显示客户端IP与服务器IP的代码
3.error_reporting(2047)什么作用?
4.echo,print()和print_r()有什么区别?
5.打开php.ini中的Safe_mode,会影响哪些函数?
6.请写一个函数验证电子邮件的格式是否正确(要求使用正则)
7.MySQL数据库,一天一万条以上的增量,怎么优化?
8.写出一种排序算法(要写出代码),并说出优化它的方法。
假设我们需要做一个用户金币系统。用户每天第一次登录可以获得1个金币,用户下单购买东西后会获得20个金币。但是这两种金币有不同的性质。对于登录获得的金币(简记为类型A),用户获得之后就可以消费——例如可以用金币买东西。对于下单购买获得的金币(简记为类型B),有一个月的冻结期。在冻结期内类型B的金币不能被消费,如果冻结期内用户发生了退货,则这些类型B的金币会被回收,将来也不让给用户消费。
请设计一个系统(数据库结构和逻辑流程),满足以下要求:
1、用户可以正确的获得上述类型金币
2、用户随时可以知道自己有多少金币可以消费,有多少金币被冻结
3、被冻结的金币在冻结期后成为可以消费的金币
4、用户可以消费自己的可用的金币
如题,刚接触人事招聘,公司想招聘网络美工和PHP程序员,应该如何面试呢?需要问的问题有什么呢
[接触人事招聘,如何面试网络美工和PHP程序员?]
PHP面试中最常涉及的12个问题
了解和学习了PHP很多的知识,比如《PHP代码优化的小技巧分享》《为开发者准备的9个实用PHP代码片段》,你是否开始着手准备PHP开发工作的面试,希望知道那些最有可能在面试时被问到的问题。这篇文章我们整理了关于PHP相关工作的面试中最常涉及的问题和答案,供你参考,你也可以把它当做一份PHP的学习资料。当然,每一家公司都有他们自己的面试标准,面试问题也是依据工作职位和你的能力而设置的。
问题1:谈谈你对的PHP的基本认识。
回答:PHP是Hypertext Preprocessor(超文本预处理器)的简称,是一种用来
开发动态网站的服务器端脚本语言。
问题2:什么是MVC?
回答:MVC,即Model(数据层),View(视图层),Controller(控制层)。PHP中的MVC模型是一种有效将代码分成三层的管理办法,其中Model表示着应用中的数据信息,View负责将应用中的数据信息展现出来,Controller控制着如何将数据信息读出。
问题3:你在一个页面上有几种方式添加CSS?
回答:三种办法可以使用:(1)引用外部CSS文件。(2)引用内部CSS文件。(3)内联CSS样式。
问题4:PHP支持多继承吗?
回答:不支持。PHP中只允许单继承,父类可以被一个子类用关键字“extends”继承。
北大青鸟官网:
问题5:PHP中echo和print有什么区别?
回答:这两个函数看起来很相似,都是用来打印输出的。两者最大的区别是,echo不是函数,没有返回值,而print是一个函数有返回值,所以相对而言如果只是输出 echo会更快。
问题6:GET和POST方法有什么区别?
回答:我们在网页上填写的表单信息可以通过这两种方法将数据传递到服务器上,GET或POST方法。当我们使用GET时,所有的信息都会显示在URL地址中,并且使用GET方法最多只能传递1024个字符,所以GET方法适用于传输量小,且数据安全不是很重要的情况。而POST方法,没有信息会显示在URL地址上,相对安全,且最多可以传输2MB字节的数据,这个数字还可以根据需要增加。
问题7:PHP中获取图像大小,宽与高的函数是什么?
回答:getimagesize()获取图像的尺寸,imagesx()获取图像的宽度,imagesy()获取图像的高度。
问题8:PHP中的PEAR是什么?
回答:PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写,它是一个PHP扩展及应用的一个代码仓库,同时它也是一个标准,使用这个标准来书写PHP代码,会增强程序的可读性,复用性。
问题9:如何使用PHP和MySQL上传视频?
回答:我们只需要复制数据库中存储视频的路径,而不是存储视频文件本身。所有的视频会被存在另外一个文件夹中,当需要的时候可以从中调用视频。上传视频的默认大小是2MB,但是我们也可以在php.ini文件中修改max_file size,改变文件大小。
北大青鸟官网:
问题10:PHP中的错误类型都有哪些?
回答:PHP中主要有三种错误类型,(1)Notice:这些都是一些非常正常的信息,而非重大错误,甚至有一些都不会展示给用户。(2)Warning:这类是稍微严重一些的错误,错误会展示给用户,但不影响程序的输出。(3)Fatal errors:这些是非常严重的错误,比如要访问一个不存在的PHP类。
问题11:在PHP中如何定义常量?
回答:使用define()来定义常量,比如define(“Newconstant”, 30);
问题12:如何不使用submit按钮来提交表单?
一、基础题
1. 写出如下程序的输出结果
\(str2 = false;</p> <p>echo \)str1==\(str2 ? 相等 : 不相等;</p> <p>\)str3 = ;
\(str4 = 0;</p> <p>echo \)str3==\(str4 ? 相等 : 不相等;</p> <p>\)str5 = 0;
\(str6 = 0;</p> <p>echo \)str5===\(str6 ? 相等 : 不相等;?></p> <p>2. 写出如下程序的输出结果</p> <p></p> <p>\)a2 = false;
\(a3 = 0;</p> <p>\)a4 = ;
\(a5 = 0;</p> <p>\)a6 = null;
\(a7 = array;</p> <p>\)a8 = array(array());
echo empty(\(a1) ? true : false;</p> <p>echo empty(\)a2) ? true : false;
echo empty(\(a3) ? true : false;</p> <p>echo empty(\)a4) ? true : false;
echo empty(\(a5) ? true : false;</p> <p>echo empty(\)a6) ? true : false;
echo empty(\(a7) ? true : false;</p> <p>echo empty(\)a8) ? true : false;?>
3. 写出如下程序的输出结果
\(abc = & \)test;
unset(\(test);</p> <p>echo \)abc;?>
4. 写出如下程序的输出结果
function get_count(){
static \(count = 0;</p> <p>return \)count++;
}
echo \(count;</p> <p>++\)count;
echo get_count();
echo get_count();?>
5. 写出如下程序的输出结果
\(var2 = 1;</p> <p>function get_value(){</p> <p>global \)var2;
\(var1 = 0;</p> <p>return \)var2++;
}
get_value();
echo \(var1;</p> <p>echo \)var2;?>
6. 写出如下程序的输出结果
unset(\(arr[0]);</p> <p>}</p> <p>\)arr1 = array(1, 2);
\(arr2 = array(1, 2);</p> <p>get_arr(&\)arr1);
get_arr(\(arr2);</p> <p>echo count(\)arr1);
echo count(\(arr2);?></p> <p>7. 使用五种以上方式获取一个文件的扩展名</p> <p>要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,</p> <p>必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1(\)file_name), get_ext2($file_name)
二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数【答案】
(以下答案不一定是最好的,只是一个简单的参考)
1.常用php面试题及答案
2.php常用面试题及答案
3.PHP面试题汇总
4.优秀php高级工程师面试题及答案
5.百度PHP面试题
6.百度php面试题目
7.腾讯php面试题
8.提问得最多的PHP面试题
9.基础php面试题

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/185694.html