当前位置: 首页 > 后端技术 > PHP

别以为学PHP就不需要学C语言

时间:2023-03-29 22:34:05 PHP

PHP中的很多东西很难理解。这样的例子其实还有很多。这里我举个例子:PHP数组和C语言数组的区别和联系。学过C语言的朋友肯定知道C语言有数组;PHP也有数组,但是两者的功能几乎相差甚远,而且PHP对数组有用的功能太多了。那么是什么原因呢?阵法有很多种,你只学其中一种?其实并不是。其根本原因在于:C语言中的数组是一个真正的数组,是在栈中申请的一个连续的存储空间。一旦应用了这个空间,就不可能添加另一个元素,然后再删除一个元素。只能整体操作,或者全部删除,或者重新申请一个数组。这才是真正的数组。PHP中的数组其实不是这样的数组。它在堆中申请内存,然后用指针指向头地址,然后遍历指针,这样就可以随时删除一个元素,增加一个新元素,因为它本质上不再是一个真正的数组,而是一个链表。所以从这里可以看出,C语言对于PHP的理解和学习有着非常重要的意义。没有C语言的链表支持,PHP的特性会莫名其妙的出现,幻想总感觉脚没有落地。C语言链表原理是C++实现vector、list、map等动态数组、链表、集合、队列的原理基础,也是PHP实现数组的原理基础(本质上是动态的)由链表实现的数组)。那么对上层语言复杂的数据结构的理解就变得顺理成章了。对PHP数组的操作变得容易理解。如:在末尾插入一个元素:弹出一个元素:这些东西用起来很舒服,不会弹出恐怖的黑窗错误信息,但是舒服的背后是需要基础支持和理解,牺牲编译性能是它的事,但你能不能理解它是你的事。如果看不懂,就只能死记硬背,这样很不爽,因为会很容易忘记。如何不轻易忘记,那就要了解它,了解它的来源,了解其可行性的实现原理……一切都会顺其自然。没有人规定,要想学,就必须很痛苦的学。知道了却不知道为什么是学习成功的最大障碍,也是造成学习瓶颈的最大因素。所以C语言的意义在于更容易理解上层语言。在上层语言中,比如PHP,不是用来学习链表的,而是用来使用链表的。所以用PHP写链表意义不大。那只是给没有什么经验的初学者的“学术表演”。因为PHP连指针都隐藏了,何谈深入理解链表呢?难怪学C的看不起学C++的,学C++的看不起学PHP的;难度不同。在内功深厚的程序员眼里,很多所谓的过来人,其实都是在做“轰动”。只要能骗过初学者就无所谓的感觉。学习要善于联想,才能减轻学习的负担。注意学习心情可以带来长期的成功。好的理解还是需要一定的力度、广度和深度来支撑的。所以,不要以为学了PHP就不用学C语言了。否则,你无法理解PHP中的许多东西。没有基础,只能靠幻想和死记硬背。……同时,学习C语言并不意味着看了就学就及格了。关键是知道和理解。比如,不懂计算机的人能解释一下什么是链表吗?有什么特点,如何实现等等,能说多少,就知道多少。本文由家住会计师联盟(www.jiazhua.com)整理编辑!