php基础--快速复习记录13-类与对象(续)

类与对象(续)

final 关键字 标志final的方法不能被重写,标志为final的类不能被继承

对象的克隆 对象的简单赋值是不能创造一个相同的对象,其实还是同一个引用,需要使用clone

  • 浅克隆 属性对象不会复制
  • 深克隆 手动重写__clone()来手动克隆属性对象

对象的比较

  • == 属性值相等,且同属一类
  • ===同一引用,单例模式判断

类型约束

PHP 5 可以使用类型约束。函数的参数可以指定必须为对象(在函数原型里面指定类的名字),接口,数组(PHP 5.1 起)或者 callable(PHP 5.4 起)。不过如果使用 NULL 作为参数的默认值,那么在调用函数的时候依然可以使用 NULL 作为实参。
如果一个类或接口指定了类型约束,则其所有的子类或实现也都如此。
类型约束不能用于标量类型如 int 或 string。Traits 也不允许。

后期静态绑定

额看了官方给的说法,总结起来就是__CLASS__self是定义的类,static是调用类,

后期静态绑定的解析会一直到取得一个完全解析了的静态调用为止。另一方面,如果静态调用使用 parent:: 或者 self:: 将转发调用信息。
没看懂。。。

引用和对象

我自己之前也是以为对象默认是引用赋值的但其实不是真实这样的,只是看起来像而已。。

PHP 的引用是别名,就是两个不同的变量名字指向相同的内容。在 PHP 5,一个对象变量已经不再保存整个对象的值。只是保存一个标识符来访问真正的对象内容。 当对象作为参数传递,作为结果返回,或者赋值给另外一个变量,另外一个变量跟原来的不是引用的关系,只是他们都保存着同一个标识符的拷贝,这个标识符指向同一个对象的真正内容。
所以其实普通如$a = $b//$b对象 二者存的实际是一个标识符的拷贝而$a = &$b//$b对象这才是真的引用。不过了解下就可以了

对象的序列化与反序列化

注意自动加载以及__sleep() __wakeup()使用

posted @ 2017-05-02 20:54  山下有书  阅读(87)  评论(0编辑  收藏  举报