php基础语法之魔术方法_第1页
php基础语法之魔术方法_第2页
php基础语法之魔术方法_第3页
php基础语法之魔术方法_第4页
php基础语法之魔术方法_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

魔术方法,magicmethod在特定的情况下,会被自动调用的方法,通常负责完成某块独立的功能的方法称之为魔术方法!特点:1,需要用户脚本定义,不定义不执行!2,命名方式都是以__开头!总结:__construct__destruct__sleep__wakeup__set__get__isset__unset__clone__call__callStatic__autoload()//魔术函数__invoke()将一个对象,当作函数调用时,会触发该对象的__invoke()方法,由此方法,就可以调用,没有该方法就不能调用!回想匿名函数$say中是啥?对象!语法是调用对象的语法?为什么,匿名函数对象(ClosureL类对象)可以,但是普通类对象不行?__invoke是php实现匿名函数不可或缺的部分!此时,也可以传递参数,为对象传递参数,就是为invoke魔术方法传递参数!__toString()转换到字符串的意思!当将对象当作字符串使用时,会自动调用该对象的魔术方法!如果此时,存在toString魔术方法,即可以完成转换。toString的返回值,就是转换的结果,一般转换对象的标志性的属性即可!静态延迟绑定,static>=5.3问题:$this永远代表所在类的对象?不是self用于代表所在类么?是,永远代表所在类的对象!看逻辑:显然,当前的逻辑不是十分完善!此时,应该是表示当前类的关键字,最好应该在调用时决定最好!(self不能做到)此时,采用一个新的关键字,代表当前类,与self不同,在于是运行时调用时决定,而不是在类编译时就确定好了的!关键字是:static。总结:static关键字的功能:声明静态局部变量声明静态成员当前类,运行时的当前类!类中,可以表示类的关键字:self,所在类static,调用类parent,父类参数类型约束约束函数,或者方法类参数的类型,只能是某个类的对象!php是弱类型,变量可以存储任意类型的数据!函数,方法的参数也是可以接受任意类型!但是参数,可以被规定为,某个类的固定对象!在参数前增加类名即可!注意,只支持类名!还支持数组!对象的遍历对象是一个集合数据类型!简单的遍历,foreachforeach,可以遍历对象遍历对象,是依次获得对象拥有的属性的信息!留意,访问修饰可以影响!自定义遍历,iterator,迭代器接口场景:在遍历班级时,就相当于,遍历的班级的所有学生,而不不是遍历班级的所有属性!此时,需要使用接口编程实现。foreach时,php回去判断当前所遍历的对象的类,是否类实现一个叫iterator(迭代器)接口!不是的话,就会依次得到对象每个属性!(简单遍历)是的话,会在foreach执行时,通过调用接口内规定的各个方法来完成这个遍历!两个问题:foreach的流程:Iterator接口的内容:预定义的!php定义好了的!显然,php的foreach的五个重要的步骤,依赖于接口中定义的5个方法!编程实现,是需要遍历学生信息:类要实现Iterator接口2依次完善抽象方法常用的对象,类函数is_object();class_exists();interface_exists();get_class();get_parent_class();get_class_vars();得到类的变量(属性)get_class_methods();得到类的方法get_declared_classes();得到所有已经定义的类!可以见,有自定义类,和预定义类!stdClass,内置的标准类!__PHP_Incomplete_ClassC魔术常量__CLASS__,当前类名。注意:可以newself不可以new__CLASS__。__METHOD__,当前方法名。区别__FUNCTION__。__FILE____DIR____LINE____FUNCTION__面向对象的特征封装,继承多态快速排序分治。分而治之!核心思想:解决一个难度为N的问题,与解决2个难度为N/2相比!冒泡解决6个元素的问题?需要比较几次?5,4,3,2,1=15冒泡3个元素的问题两次?2,1=32,1=3思路:将整体的待排序序列,分割成两个部分!分割的原则,跳出一个参考元,将比参考元大的,放一起,比参考元小的放在一起!假设第一个为参考元!接下,再对,分割的两个子序列,再次分割!直到所有的分割的待排序序列内,元素数量为一个或者0个!实现的时候,应该注意:1,选择参考元的问题。编程实现:递归实现!递归点:递归出口:待排序的序列元素

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论