一:静态成员
?在类中除了有普通的成员(普通的属性和普通的方法),还有静态的成员(静态属性和静态方法)
- .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