课程
/后端开发
/PHP
/站在巨人的肩膀上写代码—SPL
弱弱的问一句又创建对象又push数据,请问为何不直接创建一个数组完事呢?数组还可以随机存取,这个还得遍历。
2014-07-23
源自:站在巨人的肩膀上写代码—SPL 2-4
正在回答
本次课程数据结构部分大家学习的时候应该重在理解数据结构本身,数据结构里面存储什么数据可以根据业务逻辑的需要变得非常复杂。但是因为教学需要简单易懂,所以实例里面都是很简单的数据。大家千万不要理解为只能放这么简单的数据。应该说,现在所有的软件产品的基础就是这些数据结构的组合。 当然,我们说程序=数据结构+算法,数据结构为先,我们就知道数据结构的重要性了。
提示:请大家从下往上看回复。
封装成对象之后,就可以通过SPL里面的数据结构进行存取了。 简单的业务的话,就像同学说的一样,直接用数组存取就可以了。
因此,面向对象对于解决实际问题的时候,更加贴合整体的特性,把数据和行为封装到一起。 当然,是不是所有的时候都需要用SPL里面的数据结构或者迭代器进行遍历呢?回答当然是否定的。大家记住,所有的技术没有最先进的说法,只有最合适的情况。即使一个80年代的技术,只要能够解决实际问题,那就是先进技术。就像我们TCP/IP协议,用了都多少年了,还是在用就是这个道理。 所以,如果我们在解决的实际问题存储的数据非常简单单一,直接用数组好了,但是如果数据很复杂,并且还有一些操作需要封装,或者说这些数据有一些共有的行为,又或者数据之间的依赖关系非常强烈,那么我们就可以考虑把数据以面向对象的方式封装称为对象。
这个问题问的非常好,谢谢同学提出。 我们说SPL是一个高级课程,为什么高级呢?很重要的一个原因是因为用SPL的时候,我们其实是用面向对象的视角的写程序。 数组确实可以写程序,并且可以直接存取某个元素的值,但是,数组是面向过程的编程方式。面向对象和面向过程最大的区别是面向对象把所有的业务以对象为单位进行了封装。这样,存取的时候就是存取的对象,而对象除了可以有数据之外,还可以有行为,也叫做方法。比如说人,可以有眼睛、鼻子、耳朵,同时也可以用眼睛看、用鼻子闻、用耳朵听。前者是数据,后者是行为。而面向过程的数组是无法存储这些信息的,而只能离散的以函数的形式放到其他的地方。
翻到 了 这一页 才豁然开朗。 想想现在的框架 ~ 打印一下 数据 基本都是对象的格式了。 需要数组 ~还得转成数组
对于用数组就是面向过程,spl就是面向对象,我表示难以接受。
举报
SPL,一个能找到登上绝顶的天梯,学会后能提高实际工作的效率
1 回答push append unshift等方法的返回值,如果是迭代器本身
3 回答纠正一下老师的小失误 最后的时候老师要说的是iteratoriterator接口
3 回答用Spl处理数组会不会比用php函数处理数组效率要高?
2 回答
1 回答