不要认为学PHP就不须要学C语言

之因此这样说“不要认为学PHP就不须要学C语言”,是由于一味的只学PHP而没有C语言等这些基础语言的支撑,是很难深刻理解PHP的不少东西的。编程

这样的例子其实不少,这里我就举这个例子吧:PHP的数组和C语言的数组的区别和联系。数组

学过C语言的朋友固然知道C语言里有数组;数据结构

PHP里也有数组,但他们两个的功能几乎差异很大,PHP的数组太多很好用的功能。那这是什么缘由?是否是有多种数组,你只是学其中一种数组?其实不是的。性能

根本缘由是:C语言里的数组是真正的数组,是在栈中申请的一段连续存储的空间,这种空间一旦申请是不能再添加一个元素,再删除某个元素,只能总体操做,要么所有删除,要么从新再申请一个数组。这就是真正的数组。学习

而PHP中的数组,其实不是这样的数组,它是在堆中申请内存,而后用指针去指向头地址,而后遍历指针,这样就能够删除某一个元素,随时添加一个新元素,由于它本质上再也不是那种真正的数组,而是链表。spa

那么从这里能够看出,C语言对于PHP的理解和学习意义很大。没有C语言的链表支撑,会让PHP的那些特性出现的莫名其妙,漫天幻想也老是感受脚不着地。指针

C语言中的链表原理是实现C++里的vector,list,map,等动态数组、链表、集合、队列的原理依据,也是实现PHP里面的数组(本质是链表实现的动态数组)的原理依据。队列

那么上层语言的那些复杂的数据结构的理解也就变得瓜熟蒂落了。对于PHP数组的那些操做也就变得很容易理解了。如:ip

在最后插入一个元素:内存

clipboard.png

clipboard.png

弹出一个元素:

clipboard.png

clipboard.png

这些东西用起来是很舒畅的,不会给你弹出一个恐怖的黑窗口错误提示,可是舒畅的背后是须要基础来支撑和理解的,牺牲编译性能是它的事,但可否理解的通就是你的事了,理解不了就只能死记硬背,那就不舒畅了,由于会很容易忘记。

如何才能不容易忘记,那就要理解它,理解它的来源,理解它可行性的实现原理....一切才会顺其天然。谁也没有规定,你要学会必需要学的很痛苦才行啊。

知其然而不知其因此然,是学有所成的最大障碍,也是出现学习瓶颈的最大因素。

因此C语言的意义在于对上层语言更轻松的理解,上层语言中如:PHP,不是用来学链表的,而是用链表的。因此用PHP来写个链表其实意义性并不大。

那只是给见识不多的初学者进行一次“学术显摆”而已。由于PHP里连指针都隐藏了,又何谈深刻理解链表?也难怪学C的看不上C++的,学C++的看不上学PHP的;难度不同,在有深厚内功的编程人员眼里,不少所谓的过来人实际上是在作“哗众取宠”的事,估计是那种无所谓只要能忽悠初学者就行的感受吧。

学习要善于联想,才能给学习减负。关注学习心情,才能长远。善于理解仍是须要必定的实力、广度和深度来支撑的。

因此,不要再认为学PHP就能够不要学C语言了,不然你理解PHP不少东西都难理解的通,没有基础只能靠幻想、背诵,也难深刻和长久学下去,由于太累......同时学C语言也不是说你看了、学了就算过关了,关键是要会,要懂。

好比随便给一个不懂计算机的人就能解释链表是什么?有什么特色,怎么实现等等。你能说多少,才表示你会了多少。
本文由甲爪cpa联盟(www.jiazhua.com)整理编辑!

相关文章
相关标签/搜索