php基础语法之魔术方法.pdf

php基础语法之魔术方法.pdf

ID:57338455

大小:704.58 KB

页数:13页

时间:2020-08-12

php基础语法之魔术方法.pdf_第1页
php基础语法之魔术方法.pdf_第2页
php基础语法之魔术方法.pdf_第3页
php基础语法之魔术方法.pdf_第4页
php基础语法之魔术方法.pdf_第5页
资源描述:

《php基础语法之魔术方法.pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、魔术方法,magicmethod在特定的情况下,会被自动调用的方法,通常负责完成某块独立的功能的方法称之为魔术方法!特点:1,需要用户脚本定义,不定义不执行!2,命名方式都是以__开头!总结:__construct__destruct__sleep__wakeup__set__get__isset__unset__clone__call__callStatic__autoload()//魔术函数__invoke()将一个对象,当作函数调用时,会触发该对象的__invoke()方法,由此方法,就可以

2、调用,没有该方法就不能调用!回想匿名函数$say中是啥?对象!语法是调用对象的语法?为什么,匿名函数对象(ClosureL类对象)可以,但是普通类对象不行?__invoke是php实现匿名函数不可或缺的部分!此时,也可以传递参数,为对象传递参数,就是为invoke魔术方法传递参数!__toString()转换到字符串的意思!当将对象当作字符串使用时,会自动调用该对象的魔术方法!如果此时,存在toString魔术方法,即可以完成转换。toString的返回值,就是转换的结果,一般转换对象的标志性的属

3、性即可!静态延迟绑定,static>=5.3问题:1,$this永远代表所在类的对象?不是2,self用于代表所在类么?是,永远代表所在类的对象!看逻辑:显然,当前的逻辑不是十分完善!此时,应该是表示当前类的关键字,最好应该在调用时决定最好!(self不能做到)此时,采用一个新的关键字,代表当前类,与self不同,在于是运行时调用时决定,而不是在类编译时就确定好了的!关键字是:static。总结:static关键字的功能:1,声明静态局部变量2,声明静态成员3,当前类,运行时的当前类!类中,可以表

4、示类的关键字:self,所在类static,调用类parent,父类参数类型约束约束函数,或者方法类参数的类型,只能是某个类的对象!php是弱类型,变量可以存储任意类型的数据!函数,方法的参数也是可以接受任意类型!但是参数,可以被规定为,某个类的固定对象!在参数前增加类名即可!注意,只支持类名!还支持数组!对象的遍历对象是一个集合数据类型!简单的遍历,foreachforeach,可以遍历对象遍历对象,是依次获得对象拥有的属性的信息!留意,访问修饰可以影响!自定义遍历,iterator,迭代器接口

5、场景:在遍历班级时,就相当于,遍历的班级的所有学生,而不不是遍历班级的所有属性!此时,需要使用接口编程实现。foreach时,php回去判断当前所遍历的对象的类,是否类实现一个叫iterator(迭代器)接口!不是的话,就会依次得到对象每个属性!(简单遍历)是的话,会在foreach执行时,通过调用接口内规定的各个方法来完成这个遍历!两个问题:foreach的流程:初始化foreach判断是否非法结束合法合法循环体值变量赋值移动键变量赋值Iterator接口的内容:预定义的!php定义好了的!显然

6、,php的foreach的五个重要的步骤,依赖于接口中定义的5个方法!Rewind初始化foreachValid判断是否非法结束合法Current合法循环体值变量赋值NextKey移动键变量赋值编程实现,是需要遍历学生信息:1,类要实现Iterator接口2依次完善抽象方法常用的对象,类函数is_object();class_exists();interface_exists();get_class();get_parent_class();get_class_vars();得到类的变量(属性)g

7、et_class_methods();得到类的方法get_declared_classes();得到所有已经定义的类!可以见,有自定义类,和预定义类!stdClass,内置的标准类!__PHP_Incomplete_ClassClosurephp.itcast.cn魔术常量__CLASS__,当前类名。注意:可以newself不可以new__CLASS__。__METHOD__,当前方法名。区别__FUNCTION__。__FILE____DIR____LINE____FUNCTION__面向对象

8、的特征封装,继承多态快速排序分治。分而治之!核心思想:解决一个难度为N的问题,与解决2个难度为N/2相比!冒泡解决6个元素的问题?需要比较几次?5,4,3,2,1=15冒泡3个元素的问题两次?2,1=32,1=3思路:将整体的待排序序列,分割成两个部分!分割的原则,跳出一个参考元,将比参考元大的,放一起,比参考元小的放在一起!假设第一个为参考元!接下,再对,分割的两个子序列,再次分割!直到所有的分割的待排序序列内,元素数量为一个或者0个!24,11,67,10,9,23,4511,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。