多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
\_\_tostring()魔术方法 将一个对象“当做”一个字符串来使用的时候,会自动调用该方法,并且在该方法中,可以返回一定的字符串,以表明该对象转换为字符串之后的结果。 注意:如果没有定义该方法,则对象无法当做字符串来使用!!! \_\_invoke()魔术方法 将对象当作函数来使用的时候,会自动调用该方法。通常不推荐这么做。 #### 与类有关的魔术常量 \_\_CLASS\_\_: 代表当前其所在的类的类名;\_\_METHOD\_\_:代表其当前所在的方法名; #### 与类有关的系统函数 class\_exists(“类名”), 判断一个类是否存在(是否定义过) interface\_exists(“接口名”), 判断一个接口是否存在(是否定义过) method\_exists(‘对象变量’,’方法的名字’) 判断某个方法是否存在! get\_class( $obj ), 获得某个对象$obj 的所属类 get\_parent\_class($obj ), 获得某个对象$obj 的所属类的父类 get\_class\_methods(), 获得类的所有方法名,结果是一个数组,里面存储是这些方法的名称 get\_class\_vars(), 获得一个类的所有属性名。结果是一个数组,里面存储的是这些属性的名称get\_declared\_classes() 获得“整个系统”所定义的所有类名; #### 与对象有关的系统函数 is\_object( $obj ): 判断某个变量是否是一个对象; get\_object\_vars( $obj ):获得对象的所有属性;结果是一个数组,里面存储的是这些属性的名称 #### 与类有关的运算符 instanceof: 判断一个“变量”(对象,数据),是否是某个类的“实例”;注一个类对象也属于上级类对象 class A {} class B {} class C extends A{} $a1 = new A(); $b1 = new B(); $c1 = new C(); $v1 = $a1 instanceof A ; //结果是true $v2 = $b1 instanceof A ; //结果是false $v3 = $c1 instanceof C ; //结果是true $v4 = $c1 instanceof A ; //结果是true ——推论:一个类的对象,必然也属于这个类的上级类的对象;