真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php的語(yǔ)法和c語(yǔ)言有哪些區(qū)別

這篇文章將為大家詳細(xì)講解有關(guān)php的語(yǔ)法和c語(yǔ)言有哪些區(qū)別,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

目前創(chuàng)新互聯(lián)已為超過(guò)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、安福網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

語(yǔ)法上的區(qū)別:1、PHP使用define函數(shù)來(lái)定義常量,c語(yǔ)言不是;2、php的所有的變量名前都要帶個(gè)“$”,c語(yǔ)言不用;3、PHP不管常量還是變量都不需要先定義后使用(類(lèi)中的變量除外)。

語(yǔ)法上,php和C語(yǔ)言的區(qū)別

常量

在PHP中定義常量的方式在學(xué)習(xí)C的人看來(lái)有點(diǎn)不可思議,竟然是用一個(gè)define函數(shù)實(shí)現(xiàn)的,PHP的函數(shù)實(shí)在是太厲害了,后面我們會(huì)看到定義數(shù)組也是由函數(shù)完成的,我們真得感謝PHP無(wú)比豐富的函數(shù)庫(kù),它們成就了PHP的易用和強(qiáng)大。

define函數(shù)原型:bool define(string name,value,[,bool case_insensitive])

第三個(gè)參數(shù)如果是TRUE,則表示常量名是大小寫(xiě)不敏感的,反之就是敏感的,默認(rèn)是敏感的。我們還是遵照習(xí)慣,保持常量名稱(chēng)大小寫(xiě)敏感吧。

例:

以上代碼的運(yùn)行結(jié)果是輸出常量C1的值(Hello PHP World?。?。

這里順便介紹一下,?>是PHP代碼的定界符,將PHP代碼同HTML代碼區(qū)分出來(lái),PHP代碼的語(yǔ)句以分號(hào)結(jié)束,這是我們習(xí)慣的,另外PHP的注釋符號(hào)也與C一樣,你該知道的,我就不說(shuō)了……這個(gè)echo就相當(dāng)于C的printf或C++的cout,但是嚴(yán)格地說(shuō)不是格式化的輸出,要想格式化也很容易,你把HTML代碼寫(xiě)進(jìn)去就行了,比如你要輸出結(jié)束后換行,那你就寫(xiě)成define(“C1”,”Hello PHP World!
”);
好了。注意,PHP也支持‘\n’作為換行符,但是它的含義僅僅相當(dāng)于在HTML里敲個(gè)回車(chē),瀏覽器里看還是在一行上的。

變量

除了不用定義,C語(yǔ)言用戶最不習(xí)慣的就是所有的變量名前都要帶個(gè)$,你可能會(huì)抱怨PHP的設(shè)計(jì)者太財(cái)迷了,但抱怨完了你還得這么寫(xiě),寫(xiě)PHP程序,Shift鍵的使用率陡增!我突然發(fā)現(xiàn)一個(gè)這樣做的好處是:常量不帶$,因此常量與變量的區(qū)分變得很明顯,更重要的是,你再也不用擔(dān)心自定義變量名同PHP關(guān)鍵字沖突了,你可以定義一個(gè)變量叫$if,$for等(當(dāng)然,正式情況下還是不要這樣做的好,過(guò)過(guò)癮就行了)。

與C相同的是,PHP的變量名是大小寫(xiě)敏感的,并且命名方式遵循C標(biāo)識(shí)符的命名原則,還記得嗎?

如果你懂點(diǎn)C++,知道引用的概念,下面這段就可以跳過(guò),只要記住PHP也支持引用。否則花點(diǎn)時(shí)間看下面這段或是去看看C++引用的概念也行。

”;
echo $var2;
?>

這段代碼的運(yùn)行結(jié)果是輸出兩個(gè)200,分別是$var1和 $var2的值,輸出的時(shí)候?yàn)榱饲宄恿藗€(gè)換行符,PHP里句點(diǎn)(.)是字符串的連接符。

為什么只給$var2賦了200,而$var1也變成了200呢,你還可以試試只改變$var1的值,你會(huì)發(fā)現(xiàn)這兩個(gè)變量似乎被綁在一起了。其實(shí)語(yǔ)句$var2=&$var1;中的&符號(hào)的含義是將變量名$var2也指向$var1所在的存儲(chǔ)空間,也就是說(shuō)$var2并不是一個(gè)新變量,而是$var1的另一個(gè)名字,它們對(duì)應(yīng)的是同一段內(nèi)存空間,不管使用誰(shuí)都是訪問(wèn)的同一個(gè)變量,$var2就叫做對(duì)$var1的引用。引用有什么好處?以后再說(shuō)。C語(yǔ)言的基本概念(變量名、變量地址、變量值)清楚的話,理解起來(lái)應(yīng)該沒(méi)有什么困難,如果基本概念不清楚,還是先“溫故”再“知新”吧。

順便說(shuō)一個(gè)有意思的事,如果你在把上面的echo語(yǔ)句寫(xiě)成:

echo “The value of $var1 is ”.$var1.”
”;

那么你得到的輸出將是:

The value of 200 is 200

還記得嗎,在初學(xué)C語(yǔ)言時(shí)你很可能犯過(guò)把變量名放在字符串里想輸出它的值,結(jié)果得到的是變量名,而現(xiàn)在,你的“理想”實(shí)現(xiàn)了,而你卻又不習(xí)慣了,呵呵。原來(lái)PHP在使用雙引號(hào)作為字符串的定界符時(shí),會(huì)自動(dòng)把變量名替換成相應(yīng)的值,這樣的做法使得我們輸出含變量的字符串時(shí)變得非常方便,一對(duì)雙引號(hào)下來(lái)就可以了。如果你想保持變量名原樣輸出,那么可以用單引號(hào)做字符串的定界符(當(dāng)然還有其它辦法,你可以仔細(xì)研究一下PHP的字符串)。還是要感謝C的嚴(yán)格要求,如果C像PHP這樣的話,我們恐怕到現(xiàn)在也搞不清變量名、變量值這些概念。

變量的作用域

PHP的變量作用域與C很類(lèi)似,在此不準(zhǔn)備多說(shuō)。局部變量在所存在的函數(shù)內(nèi)部有效,全局變量作用域是文件作用域(限于單個(gè)PHP文件),若局部變量同全局變量重名,同C的處理方式,全局的被屏蔽。稍微麻煩一點(diǎn)的是,要想在函數(shù)內(nèi)訪問(wèn)全局變量,需使用global關(guān)鍵字聲明,否則的話PHP就認(rèn)為是一個(gè)與全局變量同名的局部變量。

以上代碼沒(méi)有輸出1,為什么呢?PHP把函數(shù)里的$a看作是一個(gè)全新的局部變量,此$a非彼$a(函數(shù)體外的全局變量),此$a未賦值,因此輸出為空。如果我們要想在函數(shù)體內(nèi)部訪問(wèn)全局變量$a的值,須在訪問(wèn)之前聲明一句:global $a; 這樣PHP就知道要訪問(wèn)的是全局變量$a了。

還有一種方法是利用PHP的系統(tǒng)數(shù)組$GLOBALS,該數(shù)組是PHP系統(tǒng)自動(dòng)生成和維護(hù)的,它記錄了所有全局變量。echo $GLOBALS[“a”]; 即可輸出其中$a的值。

PHP的靜態(tài)變量?jī)H在局部函數(shù)域中存在,同C是完全相同的。

PHP有一種特殊的動(dòng)態(tài)變量,名字聽(tīng)起來(lái)很容易讓人認(rèn)為就是C語(yǔ)言的普通變量(動(dòng)態(tài)的、局部的),但這個(gè)動(dòng)態(tài)的含義有點(diǎn)特殊,它是指變量名可以動(dòng)態(tài)賦予!也就是說(shuō),可以讓?xiě)?yīng)用程序的最終用戶為變量指定名字!

運(yùn)算符和表達(dá)式

PHP在運(yùn)算符和表達(dá)式方面和C極其類(lèi)似,有算術(shù)、邏輯、關(guān)系、位運(yùn)算符及相應(yīng)的表達(dá)式,也有條件運(yùn)算符(:?)及其表達(dá)式,同樣還是我們開(kāi)始提到的那個(gè)思想,實(shí)用為上,很多限制被取消了,相對(duì)較寬松。舉個(gè)例子:

按照C的思維方式來(lái)看,$a是字符,$b是整型,兩者比較是字符的ASCII碼值與整數(shù)比較,顯然不等,而PHP運(yùn)行結(jié)果卻是“Equal!”,看到這里,是不是有點(diǎn)沖破封建大家庭的禮教與心上人私奔的感覺(jué)?呵呵,抑或是驚呼PHP無(wú)法無(wú)天?接下來(lái)還有讓你目瞪口呆的,若$a="1e3"; $b=1000; 依然是“Equal!”,也就是說(shuō)PHP在比較時(shí)能自動(dòng)將字符串“按照人的理解方式”進(jìn)行轉(zhuǎn)換,1e3不就是科學(xué)計(jì)數(shù)法表示的1000嗎?甚至$a=”1e3HelloWorld”;都會(huì)相等,PHP將字符串轉(zhuǎn)換為數(shù)值時(shí)會(huì)自動(dòng)截取全部它能理解為數(shù)值的部分!其實(shí)C也允許跨越數(shù)據(jù)類(lèi)型的比較,比如字符型和整型比較,C也會(huì)自動(dòng)轉(zhuǎn)換類(lèi)型,但它是“按照計(jì)算機(jī)的思維方式”轉(zhuǎn)換的,因?yàn)樽址谟?jì)算機(jī)里就是按照ASCII碼存儲(chǔ)的。

PHP的“人性化”也帶來(lái)了麻煩,當(dāng)我們想嚴(yán)格比較兩個(gè)變量的時(shí)候怎么辦呢?于是PHP提供了一對(duì)特殊的運(yùn)算符:全等(===)和非全等(!==),只有當(dāng)值相當(dāng)且數(shù)據(jù)類(lèi)型相同時(shí),才叫全等,兩者有一不符,則非全等。此時(shí),即使1與1.0也是非全等的,原因你一定知道吧。如果你覺(jué)得只有這樣才踏實(shí),那么恭喜你,你已經(jīng)被C洗腦了。

運(yùn)算符有優(yōu)先級(jí)和結(jié)合性的概念,這方面和C是類(lèi)似的,你也許記不清所有的優(yōu)先級(jí)關(guān)系,但是沒(méi)關(guān)系,我們有括號(hào)呢。

PHP的數(shù)據(jù)類(lèi)型

PHP與C的一個(gè)顯著不同是:不管常量還是變量都不需要先定義后使用(類(lèi)中的變量除外),PHP根據(jù)第一次賦值的情況自動(dòng)決定數(shù)據(jù)類(lèi)型。想想當(dāng)年學(xué)習(xí)C語(yǔ)言的時(shí)候,我們?cè)械较榷x后使用很麻煩(但是“長(zhǎng)大后”(我是指學(xué)會(huì)C后)都體會(huì)到了它的好處),常常忘記定義,而現(xiàn)在少了這條規(guī)矩,反而有點(diǎn)不適應(yīng)了。

PHP的基本變量類(lèi)型有整型(Integer)、浮點(diǎn)型(Float)、字符串(String)(這是C沒(méi)有的,但C++有String類(lèi))以及布爾型(Boolean)(C沒(méi)有,但是C++有)。構(gòu)造類(lèi)型有數(shù)組和對(duì)象。此外還有兩個(gè)特殊類(lèi)型:空值(NULL)(C也有)和資源(Resource)。

關(guān)于“php的語(yǔ)法和c語(yǔ)言有哪些區(qū)別”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


本文題目:php的語(yǔ)法和c語(yǔ)言有哪些區(qū)別
瀏覽地址:http://weahome.cn/article/picsjp.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部