自己从网上找了几份常考到的PHP面试题进行了整理,然后才有了这份PHP面试题,并且我把所有的题目进行了详细分析和代码分析,希望可以对大家有帮助,谢谢大家。
这份试题我也上传到了百度云,有需要的可以直接去百度云下载这份试题,希望可以帮到大家。
链接:http://pan.baidu.com/s/1i5oTN7n 密码:ykws
PHP面试题
一、选择题
1.下面哪项描述是错误的?( A )
A. 父类的构造函数与析构函数不会自动被调用
B. 成员变量需要用public,protected,private修饰,在定义变量时不再需要var关键字
C. 父类中定义的静态成员,不可以在子类中直接调用
D. 包含抽象方法的类必须为抽象类,抽象类不能被实例化
答案:A。在PHP的面向过程中,子类可以修改和调整父类定义的类成员,我们称它为重写。一旦子类修改了,就按照子类修改之后的功能执行。所以如果子类中有构造函数与析构函数就会自动执行子类的,如果子类中没有构造函数和析构函数就会自动执行父类中的构造函数和析构函数。
2.关于exit( )与die( )的说法正确的是(D)
A、当exit( )函数执行会停止执行下面的脚本,而die()无法做到
B、当die()函数执行会停止执行下面的脚本,而exit( )无法做到
C、die()函数等价于exit()函数
D、die()函数与exit()函数没有直接关系
答案:D。exit() 函数输出一条消息,并退出当前脚本。die() 函数输出一条消息,并退出当前脚本。并且die()函数是 exit() 函数的别名,两者执行的功能都一样,但是二者没有直接关系。
3.下面程序运行结果(B)
$nextWeek = time() + (7 * 24 * 60 * 60);
echo ‘Now: ‘. date(‘Y-m-d’) .”\\n”;
echo ‘Next Week: ‘. date(‘Y-m-d’, $nextWeek) .”\\n”;
?>
A、得到今天的日期(月-日)
B、得到今天的日期(年-月-日)与下周的日期(年-月-日)
C、得到现在的时间(小时-分-秒)
D、得到现在到下周的时间间隔
答案:time()输出的是当前时间戳,时间戳加上的是一周的时间戳,所以可以得到下一周的时间。date() 函数格式化本地日期和时间,并返回已格式化的日期字符串。date()函数语法为:date(时间格式,时间戳);而时间格式中Y代表年,m代表月,d代表日,如果要具体到时间可以在Y-m-d后面加上H:i:s,分别意思是H代表时,i代表分,s代表秒,这样就可以输“出年-月-日 时:分:秒”了。而在刚才的date(‘Y-m-d’, $nextWeek)中,Y-m-d中的‘-’是可以替换成其他任意字符的,这样就可以输出其他格式,例如Y/m/d对应的是年/月/日的格式。
3.以下代码执行结果为:(D)
function print_A(){
$A = “phpchina”;
echo “A值为: “.$A.”";
//return ($A);
}
$B = print_A();
echo “B值为: “.$B.”";
?>
A. A值为: phpchina B值为: phpchina
B. A值为: B值为: phpchina
C. A值为: B值为:
D. A值为: phpchina B值为:
答案:D。页面加载时函数不会立即执行,函数只有在被调用时才会执行。当B=print_A()函数时,print_A()函数被调用,输出”A值为: phpchina”,由于A函数是直接输出值,而不是把print_A中的值返回赋值给B,所以导致print_A返回的值为空赋值给B,B的值为空。最后结果为先输出A值为: phpchina,紧跟其后执行echo “B值为:”,而$B为空,没有东西。所以就连在一起得到输出结果为“A值为: phpchina B值为:”。
4.以下代码执行结果为:(C)
$A=”Hello”;
function print_A()
{
$A = “php mysql !!”;
global $A;
echo $A;
}
echo $A;
print_A();
?>
A Hello
B php mysql !!