PHP和MySQL開發(fā)の第一章 快速入門

第一章 快速入門

1.字符串的連接

  • 用一個(gè)字符串的內(nèi)容來代替一個(gè)變量的操作就是插值(interpolation)山卦。
  • 雙引號(hào)("")中毒费,變量名稱將被變量值所替代炸卑;而在單引號(hào)('')中减拭,變量名稱料睛,或者任何其他文本都會(huì)不僅修改而發(fā)送給瀏覽器巨坊。

2.變量于文本

  • 變量是表示數(shù)據(jù)的符號(hào)撬槽。字符串是數(shù)據(jù)本身。
  • 第三種制定字符串的方法:heredoc語法(<<<)趾撵,通過指定一個(gè)用來結(jié)束字符串的結(jié)束標(biāo)記侄柔,Heredoc語法允許指定長(zhǎng)字符串共啃。

3.理解標(biāo)識(shí)符

  • 標(biāo)識(shí)符是變量的名稱。
  • 標(biāo)識(shí)符可以是任何長(zhǎng)度暂题,而且可以由任何字母移剪、數(shù)字、下劃線組成薪者;
  • 標(biāo)識(shí)符不能以數(shù)字開始纵苛;
  • 在PHP中,標(biāo)識(shí)符是區(qū)分大小寫的言津;
  • 一個(gè)變量名稱可以與一個(gè)函數(shù)名稱相同;
  • 不能創(chuàng)建一個(gè)具有與已有函數(shù)同名的函數(shù)攻人。

4.PHP的數(shù)據(jù)類型

  • 特定的內(nèi)置函數(shù)(例如數(shù)據(jù)庫函數(shù))將返回resource類型的變量。它們都代表外部資源(例如數(shù)據(jù)庫連接)
  • 基本上不能直接操作一個(gè)resource變量悬槽,但是通常它們都將被函數(shù)返回怀吻,而且必須具有作為參數(shù)傳遞給其他函數(shù)。

5.類型轉(zhuǎn)換

  • 使用類型轉(zhuǎn)換初婆,可以將一個(gè)變量活值轉(zhuǎn)換成另一個(gè)類型蓬坡。
  • 只需在希望進(jìn)行類型轉(zhuǎn)換的變量之前的圓括號(hào)中插入需要轉(zhuǎn)換的臨時(shí)數(shù)據(jù)類型即可。
    • $totalqty=0; $totalamount=(float)$totalqty;
    • 解釋:取出保存在$totalqty的值磅叛,并將其解釋成一個(gè)浮點(diǎn)類型屑咳,并且將其保存在$totalamonut中。

6.聲明和使用常量

  • 一個(gè)常量可以保存一個(gè)值弊琴,例如一個(gè)變量值兆龙,但是常量值一旦被設(shè)定后,在腳本的其他地方就不能再更改访雪。
  • 用define函數(shù)定義常量详瑞。
    • 例如:define('OILPRICE',10);
  • 常量名稱都是由大寫字母組成的
  • 常量和變量之間的一個(gè)重要不同點(diǎn)在于引用一個(gè)常量的時(shí)候,它前面并沒有$符號(hào)臣缀。
  • 常量可以自己定義,PHP還預(yù)定義了許多常量泻帮【茫可以通過后phpinfo()函數(shù)來了解。
  • 常量只可以保存布爾值(bool)锣杂、整數(shù)(int)脂倦、浮點(diǎn)數(shù)(float)或字符串(string)數(shù)據(jù)。

7.理解變量的作用域

  • 作用域是指在一個(gè)腳本中某個(gè)變量可以使用或可見的范圍元莫。
    • PHP有6項(xiàng)作用域規(guī)則
      • 內(nèi)置超級(jí)全局變量可以在腳本的任何地方使用和可見赖阻;
      • 常量,一旦被聲明踱蠢,將可以在全局可見火欧;也就是說棋电,它們可以在函數(shù)內(nèi)外使用;
      • 在一個(gè)腳本中聲明的全局變量在整個(gè)腳本中是可見的苇侵,但不是在函數(shù)內(nèi)部赶盔;
      • 函數(shù)內(nèi)部使用的變量聲明為全局變量時(shí),其名稱要與全局變量名稱一致榆浓;
      • 在函數(shù)內(nèi)部創(chuàng)建冰杯聲明為靜態(tài)的變量無法再函數(shù)外部可見于未,但是可以在函數(shù)的多次執(zhí)行過程中保持該值;
      • 在函數(shù)內(nèi)部創(chuàng)建的變量對(duì)函數(shù)來說是本地的陡鹃,而當(dāng)函數(shù)終止時(shí)烘浦,該變量也就不存在了。

8.前置遞增遞減(++$a和- -$a)和后置遞增遞減運(yùn)算符($a++和$a- -)

  • 所有遞增操作符都有兩個(gè)功能:
    • 將變量增加1萍鲸;
    • 增加后的值賦給原變量闷叉。
  • ++$a前置遞增
    • 運(yùn)行結(jié)果是:首先將變量$a加1,再將加1后的結(jié)果復(fù)制給原變量$a猿推。
    • $a=4;
      echo ++$a;
      echo $a;
      -屏幕顯示為:2 2
  • $a++后置遞增
    • 運(yùn)行結(jié)果是$a的值被返回并顯示在屏幕上片习,然后,$a再加1蹬叭。
      • $a=4;
        echo $a++;
        echo $a;
    • 屏幕顯示為:1 2

9.引用操作符(&)

  • 通常來說(既在不使用&符號(hào)時(shí))藕咏,在將一個(gè)變量的值(a)賦給另一個(gè)變量(b)的時(shí)候,先產(chǎn)生原變量的一個(gè)副本秽五,然后再將他保存在內(nèi)存的其他地方孽查。原變量(a)改變時(shí),變量(b)并不跟著一起改變坦喘。
    • $a=4;
      $b=$a;
      $a=6;
      echo "a=".$a."<br />b=".$b;
    • 屏幕顯示為:
  • 如果使用了引用操作符&則$b也會(huì)跟著$a進(jìn)行更改盲再。
    • $a=4;
      $b=&$a;
      echo "a=".$a."<br />b=".$b;
    • 屏幕顯示為:
  • 所以引用操作符&就像一個(gè)別名,而不是一個(gè)指針瓣铣。$a和$b都指向了內(nèi)存中相同的地址答朋。
  • 可以通過重置(unset($X))來改變所指向的地址。
    • unset($a);
    • 該重置不會(huì)改變$b的值棠笑,但是可以破壞$a和值7保存在內(nèi)存中的連接梦碗。
    • 例如:
      • $a=4;
        $b=&$a;
        unset($a);
        echo "a=".$a."<br />b=".$b;
      • 屏幕會(huì)顯示為:


        • notice的意思是未定義的變量a在第6行。

10.比較操作符

  • 恒等操作符(===)三個(gè)等于號(hào)蓖救,只有當(dāng)恒等操作符兩邊的操作數(shù)相等并且具有相同的數(shù)據(jù)類型洪规,其返回值才為true。

11.操作符優(yōu)先級(jí)

  • 普通的圓括號(hào)是優(yōu)先級(jí)最高的操作符循捺。它的作用就是提高圓括號(hào)內(nèi)部操作符的優(yōu)先級(jí)斩例;這樣在需要的時(shí)候,就可以避開操作符的優(yōu)先級(jí)法則从橘。
    • 可以在一個(gè)表達(dá)式中使用任意個(gè)圓括號(hào)念赶,最里層圓括號(hào)的表達(dá)式將最先計(jì)算础钠。
  • 優(yōu)先級(jí)從高到低
優(yōu)先級(jí)從高到低

12.關(guān)于print和echo

  • print語言機(jī)構(gòu)等價(jià)于echo語句。這兩個(gè)結(jié)構(gòu)都將生成輸出晶乔;
  • print和echo都不是真正的函數(shù)珍坊,但是都可以用帶有參數(shù)的函數(shù)形式進(jìn)行調(diào)用;
  • print和echo都可以當(dāng)作一個(gè)操作符:只要將要顯示的字符串放置在echo或print關(guān)鍵字之后正罢;
  • 以函數(shù)形式調(diào)用print將使其返回一個(gè)值(1)阵漏;
  • print的速度要比echo慢。

13.關(guān)于gettype()和settype()

  • 要使用gettype()函數(shù)翻具,必須先給它傳遞一個(gè)變量履怯。它將確定變量的類型并返回一個(gè)包含類型名稱的字符串;如果變量類型不是標(biāo)準(zhǔn)類型之一裆泳,該函數(shù)就會(huì)返回"unknown type"叹洲。

  • 要使用settype()函數(shù),必須先給它傳遞一個(gè)要被改變類型的變量工禾,以及一個(gè)包含了上述類型列表中某個(gè)類型的字符串运提。

  • $foo="5bar"; //string
    $bar=true; //bool
    settype($foo,"integer"); //integer
    settype($bar,"string"); //string
    echo gettype($foo)."<br />".gettype($bar);

  • 屏幕顯示:


14.PHP的特定類型測(cè)試函數(shù)

  • is_array():檢查變量是否是數(shù)組;
  • is_double()闻葵、is_float()民泵、is_real():檢查變量是否是浮點(diǎn)數(shù);
  • is_long()槽畔、is_int()栈妆、is_integer():檢查變量是否是整數(shù);
  • is_string():檢查變量是否是字符型;
  • is_bool():檢查變量是否是布爾型厢钧;
  • is_object():檢查變量是否是一個(gè)對(duì)象鳞尔;
  • is_resource():檢查變量是否是一個(gè)資源;
  • is_null():檢查變量是否為null早直;
  • is_scalar():檢查變量是否是標(biāo)量寥假,即一個(gè)整數(shù)、布爾值霞扬、字符串或浮點(diǎn)數(shù)昧旨;
  • is_numeric():檢查該變量是否是任何類型的數(shù)字或數(shù)字字符串;
  • is_callable():檢查變量是否是有效的函數(shù)名稱祥得。

15.測(cè)試變量狀態(tài)

  • isset()函數(shù):該函數(shù)需要一個(gè)變量名稱作為參數(shù),如果這個(gè)變量存在蒋得,則返回true级及,否則返回false;
    • bool isset(mixed var);[;mixed var[,...]])
  • unset()函數(shù):該函數(shù)將銷毀一個(gè)傳進(jìn)來的變量额衙。
    • void unset(mixed var);[;mixed var[,...]])
      -empty()函數(shù):該函數(shù)可以用來檢查一個(gè)變量是否存在饮焦,以及它的值是否為非空或非0怕吴,相應(yīng)的返回值為true或false。
    • bool empty(mixed var);

16.while循環(huán)

  • while循環(huán)語句只要其條件為真县踢,就會(huì)不斷重復(fù)執(zhí)行代碼塊转绷。
  • 當(dāng)不知道所需的重復(fù)次數(shù)時(shí),可以使用while循環(huán)語句硼啤。如果要求一個(gè)固定次數(shù)的重復(fù)议经,可以考慮使用for循環(huán)語句。

17.for循環(huán)

  • while循環(huán)和for循環(huán)是等價(jià)的谴返,區(qū)別只是在于for循環(huán)更加緊湊煞肾。
  • foreach循環(huán)語句是專門用于數(shù)組的使用。

18.do...while循環(huán)

  • do....whild循環(huán)與while循環(huán)不同嗓袱,因?yàn)樗臏y(cè)試條件放在整個(gè)語句塊的最后籍救;也就意味著do....while循環(huán)中的語句或語句塊至少會(huì)執(zhí)行一次。

19.關(guān)于跳出

  • 如果希望終止一個(gè)循環(huán)渠抹,可以使用break語句蝙昙。使用了break語句后,腳本就會(huì)從循環(huán)體后面的第一條語句處開始執(zhí)行梧却。
  • 如果希望跳到下一次循環(huán)奇颠,可以使用continue語句。
  • 如果希望結(jié)束整個(gè)PHP腳本的執(zhí)行篮幢,可以使用exit語句大刊。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市三椿,隨后出現(xiàn)的幾起案子缺菌,更是在濱河造成了極大的恐慌,老刑警劉巖搜锰,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伴郁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蛋叼,警方通過查閱死者的電腦和手機(jī)焊傅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狈涮,“玉大人狐胎,你說我怎么就攤上這事「桠桑” “怎么了握巢?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)松却。 經(jīng)常有香客問我暴浦,道長(zhǎng)溅话,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任歌焦,我火速辦了婚禮飞几,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘独撇。我一直安慰自己屑墨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布券勺。 她就那樣靜靜地躺著绪钥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪关炼。 梳的紋絲不亂的頭發(fā)上程腹,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音儒拂,去河邊找鬼寸潦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛社痛,可吹牛的內(nèi)容都是我干的见转。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蒜哀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼斩箫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起撵儿,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤乘客,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后淀歇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體易核,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年浪默,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了牡直。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纳决,死狀恐怖碰逸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阔加,我是刑警寧澤花竞,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響约急,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜苗分,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一厌蔽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧摔癣,春花似錦奴饮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至琢岩,卻和暖如春投剥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背担孔。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國打工江锨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人糕篇。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓啄育,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親拌消。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挑豌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容