PHP面试(二)

1、echo,print,printf有什么区别?
①echo 输出一个或多个字符串,它不是一个函数(它是一个语言结构),没有返回值。
②print 输出字符串 总是返回1 ,它实际上不是一个函数(它是一个语言结构)。
③printf 输出格式化字符串,返回输出字符串的长度。

2、列举你知道的魔术方法
①.__construct,__destruct
__constuct构建对象的时被调用;
__destruct明确销毁对象或脚本结束时被调用;
②.__get,__set
__set当给不可访问或不存在属性赋值时被调用
__get读取不可访问或不存在属性时被调用
③.__isset,__unset
__isset对不可访问或不存在的属性调用isset()或empty()时被调用
__unset对不可访问或不存在的属性进行unset时被调用
④.__call,__callStatic
__call调用不可访问或不存在的方法时被调用
__callStatic调用不可访问或不存在的静态方法时被调用
⑤.__sleep,__wakeup
serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。如果存在,该方法会先被调用,然后才执行序列化操作。此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。
__sleep() 方法常用于提交未提交的数据,或类似的清理操作。同时,如果有一些很大的对象,但不需要全部保存,这个功能就很好用。
__wakeup当使用unserialize时被调用,可用于做些对象的初始化操作
⑥.__clone
进行对象clone时被调用,用来调整对象的克隆行为
⑦.__toString
当一个类被转换成字符串时被调用
⑧.__invoke
当尝试以调用函数的方式调用一个对象时

<?php
class CallableClass 
{
    function __invoke($x) {
        var_dump($x);
    }
}
$obj = new CallableClass;
$obj(5);
var_dump(is_callable($obj));
?> 

⑨.__set_state
当调用var_export()导出类时,此静态方法被调用。用__set_state的返回值做为var_export的返回值。
⑩.__debuginfo
当调用var_dump()打印对象时被调用(当你不想打印所有属性)适用于PHP5.6版本

3、404,302各代表什么?
①404 页面未找到
②302临时重定向

4、请说明final在面向对象中的作用
http://blog.csdn.net/fationyyk/article/details/51016806

5、include,require有什么区别?
①、加载失败的处理方式不同
include与require除了在处理引入文件的方式不同外,最大的区别就是:
include在引入不存文件时产生一个警告且脚本还会继续执行,
require则会导致一个致命性错误且脚本停止执行。。
②include()是有条件包含函数,而 require()则是无条件包含函数。

    if(FALSE){ 
        include 'file.php'; //file.php不会被引入 
    } 
    if(FALSE){ 
        require 'file.php'; //file.php将会被引入

③文件引用方式
include有返回值,而require没有

6、简要说明PHP的类自动加载机制
参考:http://blog.csdn.net/hguisu/article/details/7463333

7、Session和Cookie有什么区别?
COOKIE保存在客户端,而SESSION则保存服务器端。
从安全性的角度来讲,SESSION的安全性要高。
从保存内容的类型的角度来讲,COOKIE只保存字符串(及能够自动转换成字符串),而session则可以保存所有的数据类型。
从保存内容的大小的角度来讲,COOKIE保存的内容是有限制的,比较小,而SESSION基本上没有这个限制。
从性能的角度来讲,用SESSION的话,对服务器的压力会更大一些。

8、列举几种MySQL表存储引擎,并简要说明它们之间的区别。
常见的也就使用MyISAM和InnoDB
参考 http://blog.csdn.net/fationyyk/article/details/50817512

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值