简单了解面向对象
Posted ready_dream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单了解面向对象相关的知识,希望对你有一定的参考价值。
对学习面向对象的人的一点点建议,开始的时候老师说的很神奇,什么面向对象,封装,多态什么什么什么什么。。。我觉得这些完全是制造混乱状态。
编程就是方法,然后就是方法直接的调用,方法会用到传值,把相似方法罗列起来,组装起来,就是对象了。就好比一群零件,可能电池也对你有帮助,可能螺丝钉也对你有帮助,这些散碎零件就是函数,然后组装成机器人就成了玩具,这个玩具就是对象了,其实和函数差不多。不知道我这么说对你有没有帮助,总之,一切都是让人们更加方便的。没有那么复杂。
面向对象说起来很神奇,其实就是将函数做了组合封装。比如一个函数就像一个人可以单打独斗,而面向对象更像是一个军队,可以形成很大的战斗力。
php中面向对象,我们在框架中常见的有继承,所谓继承就是有一个词extends,如果用了这个词,两个类之间就有了联系,下面的类可以使用上面类的方法。如果举例子的话,可能是支持吧,比如我们就像小孩子,如果我们完成一个任务完成不了,我们就可以求助老师,当然那个老师得认识我们,认识就是extends,这个时候我们就可以求助老师的能力。其中子类使用父类方法的时候如果不想被子类同名函数覆盖需要使用parents::子类方法();可能开始的时候不是很习惯面向对象,如果熟悉了,感觉还是蛮不错的。
没有被NEW的时候想调用一个类里面的方法,就用一个类继承另一个类,然后用这个类::父类,这样就不用new这个类了,直接调用就可以了。
几个方法,不经常用,写下来了:
get_class(); //获取对象的类
get_parent_class(); //获取对象的父类
get_object_vars() //获取对象的属性
魔术方法:
什么是魔术方法,我们都知道方法需要调用,调用就相当于我站在门外,向屋子里面喊人,喊到谁了,谁就答应我一声,然后跑出来,帮我做事情。魔术方法就是我不用喊人,但是怎么会被触发呢,就是在做错事情的时候,比如我们做了一个防盗机制,有人做错事情了,就会触发这个线,然后自动报警,不被我们控制到。
__tostring() 当我们new了一个对象,输出这个对象的时候,对象不能被直接输出,当我们输出的时候会报错,但是我们写了这个方法,那么不会被报错,执行__tostring()方法,当然这个方法不能写echo,应该是return返回一个参数
以上是关于简单了解面向对象的主要内容,如果未能解决你的问题,请参考以下文章