PHP面向对象第二天

一:静态成员

  ?在类中除了有普通的成员(普通的属性和普通的方法),还有静态的成员(静态属性和静态方法)

  • .static关键字修饰的属性(方法)就是静态属性(方法)。
  • .静态属性(方法)通过 ‘类名 ::’ 来调用,类中用“self::”调用。
  • . .静态属性(方法)在内存中只有一份被对象去共享,节省空间。
  • .静态成员在一次HTTP请求过程中值可以改变而普通成员的值永远不变。

 下面是静态成员的例子:

 

下面是普通成员的例子:

 

二:单例模式(三私一公)

  • .私有的静态的对象属性。
  • .私有的构造方法(阻止类外new对象)。
  • .私有的克隆方法(阻止类外clone对象)
  • .公共的静态的创建对象的方法。

 

拓展:

Instanceof():判断一个对象是否为某个类的对象。用法: result = object instanceof class 参数: Result:布尔类型。 Object:必选项。任意对象表达式。 Class:必选项。任意已定义的对象类。

 

下面举例说明:

 

 

 

三:对象之间赋值与clone

1.值传递:

将一个变量的数据或值传递给另一个变量,这两个变量之间没有任何关系,修改一个变量的值另一个不受影响。(默认下PHP值传递的数据类型有:字符串型,整形,浮点型,布尔,数组,null)

 

2.引用传递:

将一个变量的数据地址传递给另一个变量,这两个变量指向同一个地址,修改一个变量的值另一个也会改变。(默认下PHP地址传递的数据类型有:对象和资源) 

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

$a = &$b那么,$a和$b也变成了同一个变量,它们之间相互影响。

如何复制一个对象,不要让复制后的对象受原来对象的影响,使用clone 可以实现。

 


四:命名空间

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

1.用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

五:魔术方法之autoload

__autoload(),这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数

 

下面是一个小案例:

 

 

 

 

六:spl_autoload_register

函数spl_autoload_register,是__autoload 的自定义注册函数。 把指定函数注册为__autoload,替代__autoload完成其自动载入功能。

语法: bool spl_autoload_register (“函数名”)

 

 

                                                                                          不慌!我们不慌!                                                                                 

                                                                                                                                                                             cute_qiao             

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值