第二周学习内容

1、定义常量
①define("名称",值)
判定是否已申明的函数:defined('名称');
②定义常量:const 常量名=值;
在类的内部访问常量:self::常量名;::是范围解析操作符(简称一对冒号)
在类的外部访问常量:类名::常量名; 或者对象名::常量名
2、static
定义:
①修饰变量
外部:对象名::静态变量名称 或 类名::静态变量名称
补充:栈主要放简单的数据
每个静态属性在内存中只会保存一个备份
②修饰函数
由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。
在类中访问静态函数:用$this,但不建议用。用self::函数名
在类外访问静态函数:类名::函数名 / 对象名::函数名 / 对象名->函数名(不推荐)
3、魔术方法
将所有以 __(两个下划线)开头的类方法保留为魔术方法。
满足条件会自动被系统调用。
属性重载:
__get():读取不可访问属性的值时,会被调用。
__set():在给不可访问属性赋值时,会被调用。
property_exists:检测类或对象是否具有指定名称的属性
__isset():当对不可访问属性调用isset()或empty()时,会被调用。
__unset():当对不可访问属性调用 unset()时,会被调用。
__call():在对象中调用一个不可访问方法时,会被调用。
method_exists:判断类中是否包含某个指定名称的函数方法
call_user_func_array:使用它来访问类中的函数方法,参数个数随意
__toString():用于一个类被当成字符串时应怎样回应。
__clone():当复制完成时,如果定义了 __clone()方法,则新创建的对象(复制生成的对象)中的__clone()方法会被调用,可用于修改属性的值(如果有必要的话)。
4、①final
如果父类中的方法被声明为final,则子类无法覆盖该方法。如果一个类被声明为final,则不能被继承。属性不能被定义为final,只有类和方法才能被定义为final.
②类的自动加载
定义:
__autoload:当对象被创建时才来调用自动加载(检测到该对象)
spl_autoload_register()
找路径
③命名空间
它必须在所有代码的最前面。
可以在一个文件中定义多个命名空间,但是不建议这样做
需要自己再研究!

posted @ 2017-07-21 16:56  计算机英语  阅读(134)  评论(0编辑  收藏  举报