PHP常见问题

##1 include require include_once require_once 的 区别?
处理失败方式不同:
require 失败时会产生一个致命级别错误,并停止程序运行。
include 失败时只产生一个警告级别错误,程序继续运行。
include_once/require_once 和 include/require 处理错误方式一样,
唯一区别在于当所包含的文件代码已经存在时候,不在包含。

##2 PHP 的垃圾收集机制是怎样的?
PHP 可以自动进行内存管理,清除不再需要的对象。
PHP 使用了引用计数(reference counting)这种单纯的垃圾回收(garbage collection)机制。每个
对象都内含一个引用计数器,每个 reference 连接到对象,计数器加 1。当 reference 离开生
存空间或被设为 NULL,计数器减 1。当某个对象的引用计数器为零时,PHP 知道你将不再需
要使用这个对象,释放其所占的内存空间。

##3 echo(),print(),print_r() 的区别?
echo, print 是 PHP 语句 print_r 是函数,语句没有返回值,函数可以有返回值(即便没有用)
print 只能打印出简单类型变量的值(如 int,string)
print_r 可以打印出复杂类型变量的值(如数组,对象)
echo – 输出一个或者多个字符串
print --输出一个字符串
print_r – 打印关于变量的易于理解的信息。

##4 用 用 PHP 端 写出显示客户端 IP 器 与服务器 IP 的代码?
客户端 IP: S E R V E R [ " R E M O T E A D D R " ] 服 务 器 端 I P : _SERVER["REMOTE_ADDR"] 服务器端 IP: SERVER["REMOTEADDR"]IP_SERVER[“SERVER_ADDR”]

##5 检测一个变量是否有设置的函数? 是否为空的函数是?
isset 检测一个变量是否设置
empty 检测是否为空
注意二者的区别,如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、
0、“0”、NULL、FALSE、array() 以及没有任何属性的对象都将被认为是空的。
isset 是检测变量是否设置/定义,
false = isset(没有定义) = isset(null)
empty 是检测已定义的变量的值是否为空。(非空或者非 0)
true = empty(’’) = empty(0) = empty(“0”) = empty(null) = empty(false) = empty(array)

##6 接口和抽象类的区别是什么?
抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。抽象类是通过关键字
abstract 来声明的。
抽象类与普通类相似,都包含成员变量和成员方法,两者的区别在于,抽象类中至少要包含
一个抽象方法,抽象方法没有方法体,该方法天生就是要被子类重写的。
抽象方法的格式为:abstract function abstractMethod();
接口是通过 interface 关键字来声明的,接口中的成员常量和方法都是 public 的,方法可
以不写关键字 public,接口中的方法也是没有方法体。接口中的方法也天生就是要被子类实
现的。
抽象类和接口实现的功能十分相似,最大的不同是接口能实现多继承。在应用中选择抽象类
还是接口要看具体实现。
子类继承抽象类使用 extends,子类实现接口使用 implements。

技术交流

CleverCode是一名架构师,技术交流,咨询问题,请加CleverCode创建的qq群(架构师俱乐部):517133582。加群和腾讯,阿里,百度,新浪等公司的架构师交流。【架构师俱乐部】宗旨:帮助你成长为架构师!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值