- 相關(guān)推薦
學(xué)習(xí)PHP是否需要學(xué)習(xí)C語(yǔ)言
“不要認(rèn)為學(xué)PHP就不需要學(xué)C語(yǔ)言”,是因?yàn)橐晃兜闹粚W(xué)PHP而沒(méi)有C語(yǔ)言等這些基礎(chǔ)語(yǔ)言的支撐,是很難深入理解PHP的很多東西的。
這樣的例子其實(shí)很多,這里我就舉這個(gè)例子吧:PHP的數(shù)組和C語(yǔ)言的數(shù)組的區(qū)別和聯(lián)系。
學(xué)過(guò)C語(yǔ)言的朋友當(dāng)然知道C語(yǔ)言里有數(shù)組;
PHP里也有數(shù)組,但他們兩個(gè)的功能幾乎差別很大,PHP的數(shù)組太多很好用的功能。那這是什么原因?是不是有多種數(shù)組,你只是學(xué)其中一種數(shù)組?其實(shí)不是的。
根本原因是:C語(yǔ)言里的數(shù)組是真正的數(shù)組,是在棧中申請(qǐng)的一段連續(xù)存儲(chǔ)的空間,這種空間一旦申請(qǐng)是不能再添加一個(gè)元素,再刪除某個(gè)元素,只能整體操作,要么全部刪除,要么重新再申請(qǐng)一個(gè)數(shù)組。這就是真正的數(shù)組。
而PHP中的數(shù)組,其實(shí)不是這樣的數(shù)組,它是在堆中申請(qǐng)內(nèi)存,然后用指針去指向頭地址,然后遍歷指針,這樣就可以刪除某一個(gè)元素,隨時(shí)添加一個(gè)新元素,因?yàn)樗举|(zhì)上不再是那種真正的數(shù)組,而是鏈表。
那么從這里可以看出,C語(yǔ)言對(duì)于PHP的理解和學(xué)習(xí)意義很大。沒(méi)有C語(yǔ)言的鏈表支撐,會(huì)讓PHP的那些特性出現(xiàn)的莫名其妙,漫天幻想也總是感覺(jué)腳不著地。
C語(yǔ)言中的鏈表原理是實(shí)現(xiàn)C++里的vector,list,map,等動(dòng)態(tài)數(shù)組、鏈表、集合、隊(duì)列的原理依據(jù),也是實(shí)現(xiàn)PHP里面的數(shù)組(本質(zhì)是鏈表實(shí)現(xiàn)的動(dòng)態(tài)數(shù)組)的原理依據(jù)。
那么上層語(yǔ)言的那些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的理解也就變得順理成章了。對(duì)于PHP數(shù)組的那些操作也就變得很容易理解了。如:
在最后插入一個(gè)元素:
彈出一個(gè)元素:
這些東西用起來(lái)是很舒暢的,不會(huì)給你彈出一個(gè)恐怖的黑窗口錯(cuò)誤提示,但是舒暢的背后是需要基礎(chǔ)來(lái)支撐和理解的,犧牲編譯性能是它的事,但能否理解的通就是你的事了,理解不了就只能死記硬背,那就不舒暢了,因?yàn)闀?huì)很容易忘記。
如何才能不容易忘記,那就要理解它,理解它的來(lái)源,理解它可行性的實(shí)現(xiàn)原理....一切才會(huì)順其自然。誰(shuí)也沒(méi)有規(guī)定,你要學(xué)會(huì)必須要學(xué)的很痛苦才行啊。
知其然而不知其所以然,是學(xué)有所成的最大障礙,也是出現(xiàn)學(xué)習(xí)瓶頸的最大因素。
所以C語(yǔ)言的意義在于對(duì)上層語(yǔ)言更輕松的理解,上層語(yǔ)言中如:PHP,不是用來(lái)學(xué)鏈表的,而是用鏈表的。所以用PHP來(lái)寫個(gè)鏈表其實(shí)意義性并不大。
那只是給見(jiàn)識(shí)很少的初學(xué)者進(jìn)行一次“學(xué)術(shù)顯擺”而已。因?yàn)镻HP里連指針都隱藏了,又何談深入理解鏈表?也難怪學(xué)C的看不上C++的,學(xué)C++的看不上學(xué)PHP的;難度不一樣,在有深厚內(nèi)功的編程人員眼里,很多所謂的過(guò)來(lái)人其實(shí)是在做“嘩眾取寵”的事,估計(jì)是那種無(wú)所謂只要能忽悠初學(xué)者就行的感覺(jué)吧。
學(xué)習(xí)要善于聯(lián)想,才能給學(xué)習(xí)減負(fù)。關(guān)注學(xué)習(xí)心情,才能長(zhǎng)遠(yuǎn)。善于理解還是需要一定的實(shí)力、廣度和深度來(lái)支撐的。
所以,不要再認(rèn)為學(xué)PHP就可以不要學(xué)C語(yǔ)言了,否則你理解PHP很多東西都難理解的通,沒(méi)有基礎(chǔ)只能靠幻想、背誦,也難深入和長(zhǎng)久學(xué)下去,因?yàn)樘?.....同時(shí)學(xué)C語(yǔ)言也不是說(shuō)你看了、學(xué)了就算過(guò)關(guān)了,關(guān)鍵是要會(huì),要懂。
比如隨便給一個(gè)不懂計(jì)算機(jī)的人就能解釋鏈表是什么?有什么特點(diǎn),怎么實(shí)現(xiàn)等等。你能說(shuō)多少,才表示你會(huì)了多少。
【學(xué)習(xí)PHP是否需要學(xué)習(xí)C語(yǔ)言】相關(guān)文章:
PHP語(yǔ)言學(xué)習(xí)需要避免什么誤區(qū)03-16
c語(yǔ)言學(xué)習(xí)需要的時(shí)長(zhǎng)以及方法05-25
學(xué)習(xí)php需要掌握的知識(shí)02-25
PHP是否是最好的語(yǔ)言03-17
如何學(xué)習(xí)c語(yǔ)言05-07
C語(yǔ)言入門學(xué)習(xí)04-08
怎么學(xué)習(xí)C語(yǔ)言02-23