这两个方法是为在类和他们的父類中没有声明的属性而设计的
这里的没有声明包括当使用对象调用时访问控制为proteced,private的属性(即没有权限访问的属性)
__autoload 函数,它会在试图使用尚未被定义的类时自动调用通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类
注意: 在 __autoload 函数中拋出的异常不能被 catch 语句块捕获并导致致命错误。
__construct 构造方法当一个对象创建时调用此方法,使用此方法的好处是:可以使构造方法有一个獨一无二的名称,无论它所在的类的名称是什么.这样你在改变类的名称时,就不需要改变构造方法的名称
__destruct 析构方法PHP将在对象被销毁前(即从內存中清除前)调用这个方法
默认情况下,PHP仅仅释放对象属性所占用的内存并销毁对象相关的资源.
析构函数允许你在使用一个对象之后执行任意代码来清除内存.
当PHP决定你的脚本不再与对象相关时,析构函数将被调用.
在一个函数的命名空间内,这会发生在函数return的时候.
对于全局变量,这發生于脚本结束的时候.如果你想明确地销毁一个对象,你可以给指向该对象的变量分配任何其它值.通常将变量赋值勤为NULL或者调用unset.
6、__clonePHP5中的对象賦值是使用的引用赋值,如果想复制一个对象则需要使用clone方法在调用此方法是对象会自动调用__clone魔术方法
7、__toString __toString方法在将一个对象转化成字符串时自动调用比如使用echo打印对象时
在PHP 5.2.0之前,__toString方法只有结合使用echo() 或 print()时 才能生效PHP 5.2.0之后,则可以在任何字符串环境生效(例如通过printf()使用%s修饰符),但 不能用于非字符串环境(如使用%d修饰符)从PHP 5.2.0,如果将一个未定义__toString方法的对象 转换为字符串会报出一个E_RECOVERABLE_ERROR错误。
10、__invoke当尝试以调用函数的方式调用一个对象时,__invoke 方法会被自动调用
1、final不能修饰成员属性
2、final只能修饰类和方法
1、使用final修饰的类不能被子类继续
2、使用final修饰的方法不能被子类去覆盖
3、鼡来限制类不被继承方法不被覆盖就使用final
1、使用static可以修饰成员的属性和成员的方法,不能修饰类
2、使用static修饰的成员属性可以被同一个類的所有对象共享
3、静态的数据是存在内存中的 数据段 中(初始化静态段)
4、静态的数据是在类么一次加载时,分配到内存中的以后再鼡到类时就直接从数据段中获取
5、什么是类被加载?只要在程序中使用到这个类(有这个类名出现)
6、静态方法(static修饰的方法)不能访問非静态的成员(在非静态的方法中,可以访问静态成员)因为非静态的成员,就必须用对象来访问访问内部的成员使用的就是$this,静态方法 不用使用对象来调用,也就没有对象$this也就不能代表什么对象,非静态的成员还必须使用对象如果你确定一个方法不使用非静态的荿员,则可以将这个方法声明为 静态方法(不用创建对象直接使用类名就可以访问)
静态成员:类名::成员 ,在内部访问其它成员:self::成员
Ps:静态的成员都要使用类名去访问不用创建对象 (类名::静态成员),如果在类中使用静态成员可以使用self::静态成员
1、它只能修饰成员属性
2、類名中声明常量属性使用const
3、类名的方式和我们以前学习的define是一样的效果
4、访问方式个static静态成员属性是一样的(在类外部使用:类名::常量 ,在類内部使用: self::常量)
5、常量一定要在声明时给初值
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。