PHP常见面试题

来源:互联网 发布:网络工程公司 编辑:程序博客网 时间:2024/06/04 19:34
1.nginx使用哪种网络协议? 
nginx是应用层 我觉得从下往上的话 传输层用的是tcp/ip 应用层用的是http 
fastcgi负责调度进程 

2. <? echo 'hello tusheng' ; ?> 没有输出结果, 可能是什么原因, 简述的解决此问题的过程(提示: 语法没有问题) 
可能服务器上面没有开启短标签short_open_tag =设置为Off,,php.ini开启短标签控制参数: short_open_tag = On 


3. 简述下面程序的输出结果, 简要说明为什么, 如何解决这类问题? 

<?php 
$tmp = 0 == "a"? 1: 2; 
echo $tmp; 
?> 
结果 1 int和string类型强制转换造成的,0==="a" 

0 == 0 肯定是true啊 
PHP是弱类型。。 
$tmp = 0 === "a"? 1: 2; 
echo $tmp; 这样就是2 

4. 已知一个字符串如下: $str = "1109063 milo 1"; 
用一行代码将该字符串里面的1109063赋值给$uid, milo赋值给$user, 1赋值给$type 
空格如下 
list($uid, $user, $type) = explode(" ", $str); 
\t如下 
list($uid, $user, $type) = explode("\t", $str); 
list($uid, $user, $type) = sscanf($str, "%d %s %d"); 
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last); 

5. instanceof的作用, 经常在什么设计模式中使用 
单例模式,但是其他的模式也会用到 


6. include和require 分别返回什么错误级别 
include会系统警告并继续执行,require会发出系统警告但是会引致致命错误令脚本终止运行 

魔术函数 
1。__construct() 
实例化对象时被调用, 
当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。 
2。__destruct() 
当删除一个对象或对象操作终止时被调用。 
3。__call() 
对象调用某个方法, 
若方法存在,则直接调用; 
若不存在,则会去调用__call函数。 
4。__get() 
读取一个对象的属性时, 
若属性存在,则直接返回属性值; 
若不存在,则会调用__get函数。 
5。__set() 
设置一个对象的属性时, 
若属性存在,则直接赋值; 
若不存在,则会调用__set函数。 
6。__toString() 
打印一个对象的时被调用。如echo $obj;或print $obj; 
7。__clone() 
克隆对象时被调用。如:$t=new Test();$t1=clone $t; 
8。__sleep() 
serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。 
9。__wakeup() 
unserialize时被调用,做些对象的初始化工作。 
10。__isset() 
检测一个对象的属性是否存在时被调用。如:isset($c->name)。 
11。__unset() 
unset一个对象的属性时被调用。如:unset($c->name)。 
12。__set_state() 
调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。 
13。__autoload() 
实例化一个对象时,如果对应的类不存在,则该方法被调用。 

7:请问PHP中echo和print有什么区别?

这两个看起来很相似,因为它们都是将一些值打印在屏幕上。但是echo和print的本质区别在于:echo用来输出字符串,显示多个值的时候可以用逗号隔开。只支持基本类型,print不仅可以打印字符串值,而且可以打印函数的返回值。

8:请问GET和POST方法有什么区别?

回答:我们再网页上填写的表单信息都可以通过这两个方法将数据传递到服务器上,当我们使用GET方法是,所有的信息都会出现在URL地址中,并且使用GET方法最多只能传递1024个字符,所以如果在传输量小或者安全性不那么重要的情况下可以使用GET方法。说到POST方法,最多可以传输2MB字节的数据,而且可以根据需要调节。

9:如何在PHP中定义常量?

回答:PHP中使用Define () 来定义常量。

define (“Newconstant”, 30);

10、请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
按引用传递则不需要复制值,对于性能提高很有好处。

11、MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?
Varchar是变长,节省存储空间,char是固定长度。查找效率要char型快,因为varchar是非定长,必须先查找长度,然后进行数据的提取,比char定长类型多了一个步骤,所以效率低一些

12、echo count(“abc”); 输出什么?
答案:1

13. php class中static,public,private,protected的区别?

static 静态,类名可以访问

public 表示全局,类内部外部子类都可以访问;

private表示私有的,只有本类内部可以使用;

protected表示受保护的,只有本类或子类或父类中可以访问;

0 0
原创粉丝点击