魔术方法: __construct 构造方法(重点) 触发时机: 当实例化(new)这个类的时候自动触发 作用: 初始化一批成员属性的时候使用 参数: 可以有可以没有 可有可无 如果你定义了形参,你必须传实参,不然报错 __destruct 析构方法(重点) 触发时机: 销毁一个对象或者程序执行完毕的时候自动触发(PHP垃圾回收机制) 作用: 数据库关闭连接 参数:没有参数 如果有参数就报错 __get(重点) 触发时机: 在类的外部访问一个受保护或者是私有的成员属性的时候自动触发 作用:封装 参数:必须有一个参数,而且这个参数代表着 你在外部访问的私有的受保护的成员属性名字 __set(重点) 触发时机: 在类的外部给于一个受保护或者私有的成员属性赋值的时候自动触发 参数: 必须有两个参数分别是:第一个:你要设置的私有的受保护的成员属性名字 第二个:你要设置的私有的受保护的成员属性的值 __unset(重点) 触发时机: 当你在类的外部销毁一个私有的或者受保护的成员属性的时候自动触发 参数: 必须有一个参数 参数代表你外部销毁的私有的或受保护的成员属性名字 __isset(重点) 触发时机: 当外部用isset去判断一个私有的或受保护的成员属性的时候自动触发 参数: 必须有一个参数 这个参数是私有的或受保护的成员属性名字 __call(重点) 触发时机: 当外部访问一个不存在的成员方法的时候自动触发 参数: 必须要两个参数分别是: 1、外部调用的不存在的成员方法名 2、外部传入的实参,并且以数组的形式返回 通过call 方法可以实现连贯操作???? 注意:在类的外部不能访问私有的 或者是受保护的成员属性 和方法 三个关键字: public 公共的 1、在类的内部可以访问 2、在类的外部可以访问 3、在继承可以访问 protectred 受保护的 1、在类的内部可以访问 2、在继承可以访问 private 私有的 1、在类的内部可以访问 继承(重点) PHP是单继承(在以后会用trait模拟多继承的问题) 两个概念: 父类(基类) 子类(派生类) 方法重载: 怎么样子类使用父类里面的方法 1、$this->父类方法名字 2、parent::父类方法名字(推荐使用这个) 3、父类名字::父类方法名字 【关于__construct】 子类重载父类构造方法的时候需要注意几点 1、父类的构造方法有几个形参,你必须传几个 2、默认值与 普通函数一样.... 注意:当子类里面 的成员方法名 与 父类里面方法名字 一样的时候 会覆盖父类的方法 如果你想使用父类的里的方法 用 parent::父类方法名 关键字: fianl 1、使用fianl 修饰的类不能被子类继承使用 2、使用fianl 关键字修饰的成员方法不能被重载 3、fianl 关键字可以 与 public protected private 配合使用效果是叠加 定义常量:define('常量名' , '常量的值') 类里面定义常量 const 常量名字(一般大写) 在子类里面怎么使用? 1、self::常量名字(推荐) 2、parent::常量名字 3、$this::常量名字 4、父类名字::常量名字 5、子类名字::常量名字 static关键字: 使用: 类的外部 类名:: 对象:: 类的内部 self:: $this:: 子类: parnet:: 在外部使用静态成员方法 $t = new Test(); $t::say(); 对象的方式 $t->say(); 普通的方式 Test::say();类名::的方式(这种)
2018-9-13-PHP魔术方法
最新推荐文章于 2024-07-18 10:04:18 发布