php面向对象——单例模式、对象之间赋值与clone和命名空间

php面向对象——单例模式、对象之间赋值与clone和命名空间

单例模式

单例模式,就是指一个类只有一个对象实例。这样做的好处,可以防止频繁创建对象而造成 资源浪费。

设计单例模式,需要注意以下几点:

 1、 一个类只能有一个对象;
 2、必须是自行创建这个类的对象;
 3、 要向整个系统提供这一个对象;


封装单例模式的类时,需做到以点几点:

 1、只提供私有的构造函数
 2、含有一个该类的静态私有对象
 3、提供一个静态的公有的函数用于创建或获取它本身的静态私有对象
 4、有一个private的clone方法,防止克隆

在这里插入图片描述
在这里插入图片描述

另:在类的外部,实例化对象的个数是无法控制的

对象之间赋值与clone

对象之间的赋值,实际就是引用赋值,两个对象之间赋值后,就是一个对象了。所以当一个对象的内容发生变化后,另一个对象的内容也会发生变化。

普通变量之间的赋值,如果也想使用引用赋值,必须使用&,如:

$name2 = &$name1

那么, n a m e 1 和 name1和 name1name2也变成了同一个变量,它们之间相互影响。

在这里插入图片描述

克隆后的对象,不会爱原对象的影响

在这里插入图片描述

命名空间

命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误
默认情况下,所有常量、类和函数名都放在全局空间下,就和PHP支持命名空间之前一样

命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间

在这里插入图片描述
在这里插入图片描述

要想使用命名空间中的类,必须要引入这个类,如:use model\Student

在这里插入图片描述

PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误,所以在重名的时候,要用as来重命名,例:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值