PHP學(xué)習(xí)筆記1

更新記錄

2017.01.18 添加超全局變量和數(shù)組部分系奉;補充代碼書寫和注釋的內(nèi)容
2017.02.09 補充完善字符串相關(guān)內(nèi)容麸折;補充變量類型相關(guān)內(nèi)容

一些基本概念

  • PHP代碼寫在PHP標(biāo)簽里面奕删,<?php code here ?>,一個文件可以有多對標(biāo)簽,當(dāng)代碼結(jié)束以后后面沒有其他內(nèi)容時孕暇,通常不閉合標(biāo)簽,一是這種情況PHP引擎本身也能完成解析赤兴,二是可以避免埋下一些坑點妖滔;例如是嵌套HTML的.php文件那當(dāng)然是要閉合的啦。

    其實還有諸如短標(biāo)簽<? code here ?>(需要在安裝配置里開啟)桶良,script標(biāo)簽<script language="php"></script>座舍,ASP風(fēng)格(5.3以后廢棄)這些書寫方式,不過知道就好了陨帆。

  • 注釋代碼除了JS里的兩種方式外還支持shell風(fēng)格的#注釋

  • 內(nèi)容輸出

  • echo語句: echo '這是一個字符串', 123; echo語句主要輸出字符串曲秉,數(shù)字采蚀,可以一次輸出多個內(nèi)容,用逗號隔開承二。另外搏存,PHP的語法比JS更加嚴(yán)格,像這個echo語句矢洲,echo后面沒有空格璧眠,語句結(jié)束沒有分號,都會報語法錯誤读虏。

  • print: print 123;print('abc');兩種方式都可以達到同樣的輸出责静。print和echo兩者的區(qū)別:
    1.echo和print都不是函數(shù),是PHP語言本身的結(jié)構(gòu)盖桥,但是echo沒有返回值灾螃,print會有返回值;
    2.echo可以一次性輸出多個內(nèi)容揩徊,print不可以腰鬼,會報錯
    3.echo的運行速度比print快

  • var_dump函數(shù),輸出的內(nèi)容會很詳細

<?php
var_dump('abc');  // string(3) "abc"
var_dump(123);  // int(123) 
var_dump(false);  // bool(false)
?>
  • echo在輸出布爾值的時候塑荒,true會輸出1熄赡,false不會輸出;print和print_r也同樣如此齿税。
echo true, false, true;  // 11
print true;  // 1
print false;  // 空白彼硫,沒有輸出
print_r(true);  // 1
  • 變量與數(shù)據(jù)類型
    $聲明變量,PHP變量名可以用中文凌箕,不過一般不會這么寫的拧篮;
    PHP的變量共有8種原始類型,其中四種標(biāo)量類型(整型 integer牵舱,浮點型 float串绩,布爾型 boolean,字符串 string)芜壁,兩種復(fù)合類型(數(shù)組 array礁凡,對象 object),兩種特殊類型(資源 resource沿盅,空 null)把篓;
    gettype()函數(shù)傳入變量查看類型纫溃;
    聲明變量但未賦值腰涧,或者賦值為null(NULL, NULl大小寫不敏感),或者對變量調(diào)用unset()函數(shù)紊浩,變量的值都為特殊類型null窖铡;
    字符串變量用雙引號時疗锐,可以傳入變量自動解析,換言之费彼,如果想在字符串里輸出美元符號$滑臊,那就得使用單引號字符串了;
    跟JS同樣的箍铲,字符串里的引號雇卷,可以通過單雙引號交叉或者轉(zhuǎn)義符號實現(xiàn);
    可以使用Heredoc結(jié)構(gòu)形式來創(chuàng)建長字符串颠猴,以<<<(界定符)GOD(標(biāo)識符)作為開始关划,然后字符串結(jié)尾處再使用GOD結(jié)束;

    $a = 123;
    $b = "abc$a";  // 'abc123'
    $c = 'abc$a';  // 'abc$a'
    $d = <<<GOD
    我有一只小毛驢翘瓮,我從來也不騎贮折。
    有一天我心血來潮,騎著去趕集资盅。
    我手里拿著小皮鞭调榄,我心里正得意。
    不知怎么嘩啦啦啦啦呵扛,我摔了一身泥每庆。
    GOD;
    echo $d; // 輸出換行也會保留
    

    創(chuàng)建對象$obj = new stdClass();
    PHP的變量作用域更加嚴(yán)格,同樣也有全局變量和局部變量今穿,即使是全局變量扣孟,在函數(shù)內(nèi)也無法直接訪問,要想在函數(shù)內(nèi)訪問外部變量荣赶,一般通過傳遞參數(shù)來進行凤价;函數(shù)內(nèi)訪問全局變量可以使用global關(guān)鍵字,但現(xiàn)在一般也不這么做了拔创。

    $a = 11;
    test();
    function test(){
        global $a;
        echo $a;
    }
    
  • 運算符
    PHP的字符串拼接用.符號利诺,訪問對象的屬性用->符號,和JS區(qū)別開來剩燥。
    注意兩個例子:

    echo 'a' . 222, '<br>';  // a222慢逾,后面的數(shù)字222會被轉(zhuǎn)換成字符串來運算
    echo 'a' + 222;  // 222
    // 前面的字符串a(chǎn)被轉(zhuǎn)換成數(shù)字再運算,由于不是一個合法字符灭红,所以沒有數(shù)值
    

    判斷不相等!=<>
    邏輯與&&和邏輯或||也可以分別用andor標(biāo)示

  • 函數(shù)
    函數(shù)的聲明同樣也會提升侣滩,參數(shù)視為變量需要用$符號;

    test(123);
    function test($a) {
        echo 'test' . $a;
    }
    

    PHP有很多自帶函數(shù)变擒,列舉幾個常見的君珠,詳細使用可以查看手冊。
    date('Y-m-d H:i:s'); date('今年是Y年');參數(shù)中對應(yīng)的字母會轉(zhuǎn)換為年月日娇斑,日分秒策添,注意Y的大寫材部;
    strlen('abc def') // 7計算字符串長度,空格也算字符串
    截取字符串:

    $str = 'abcdefg';
    echo substr($str, 3); // 從下標(biāo)為3的字符開始截取到最后唯竹,defg
    echo substr($str, 0, 3); // abc乐导,從下標(biāo)0截取到下標(biāo)3
    echo substr($str, -3); // efg,用負數(shù)表示將最后3個字符裁剪出來
    
  • 常量
    define函數(shù)定義常量

    define('a', '字母a');
    echo a;  // 定義好的常量可以直接訪問浸颓,不用`$`
    // 一些PHP預(yù)設(shè)好的常量
    echo '當(dāng)前運行的PHP文件是 ' . __FILE__;
    echo '<br/>當(dāng)前運行的PHP文件所在目錄是 ' . __DIR__;
    echo '<br/>運行這個腳本的PHP程序文件是 ' . PHP_BINARY;
    
  • 超全局變量
    這是JS沒有的東西物臂,就是在整個PHP的運行環(huán)境的任何地方都能直接訪問,無需加global产上,主要記住三個常用的鹦聪,都是數(shù)組,$_GET, $_POST, $_SERVER蒂秘,前兩個就是獲取get和post參數(shù)了泽本。

  • 數(shù)組
    目前看來PHP里面數(shù)組非常重要,像JS里面對象那樣鍵值對存儲數(shù)據(jù)的形式姻僧,在PHP里其實也是作為數(shù)組存在的规丽。

    // 索引數(shù)組
    $arr1 = [1, 2, 'abc'];
    echo $arr1[0]; // 還是下標(biāo)訪問
    // count()函數(shù)返回數(shù)組有多少個元素
    echo count($arr1);
    // 需要重點注意的是:
    // 如果傳入的變量不是數(shù)組而是其他的比如字符串,數(shù)字撇贺,布爾值赌莺,那么都會返回1
    // 追加元素
    $arr1[] = 'def';
    // isset()函數(shù)檢驗是否存在該元素
    echo isset($arr1[3]); // 存在 輸出1
    echo isset($arr1[4]); // 不存在 不輸出
    
    // 關(guān)聯(lián)數(shù)組
    // 其實就是鍵值對的形式,注意
    $arr2 = [
        'name' => '老王',
        'age' => 26,
        6 => 'abc', // 其實用數(shù)字作key也是可以的松嘶,從規(guī)范來講一般不會這么干
    ];
    echo $arr2['name']; // 和JS里的對象很像了艘狭,當(dāng)然對象更多用.訪問屬性
    // 多維數(shù)組,當(dāng)然可以無限嵌套下去
    $arr3 = [
        'name' => '老王',
        'children' => [
            'Lucy',
            'Lily'
        ],
        'address' => [
            'city' => '北京',
            'district' => '朝陽區(qū)',
            'other' => ['123', '456'],
        ],
    ];
    echo $arr3['children'][0];
    echo $arr3['address']['city'];
    
    // 輸出數(shù)組可以用print_r()函數(shù)
    print_r($arr1);  // Array ( [0] => 1 [1] => 2 [2] => abc [3] => def )
    print_r($arr2); // Array ( [name] => 老王 [age] => 26 [6] => abc )
    // 關(guān)聯(lián)和多維數(shù)組直接輸出不方便看的話可以這樣
    echo '<pre>';
    print_r($arr3);
    echo '</pre>';
    
    // foreach循環(huán)數(shù)組
    foreach ($arr2 as $value) {
        echo $value . '<br>';
    }
    foreach ($arr2 as $key => $value) {
        echo $key . ' : ' . $value . '<br>';
    }
    foreach ($arr1 as $char) {
        echo $char . '<br>';
    }
    foreach ($arr1 as $num => $char) {
        echo $num . ' : ' . $char . '<br>';
    }
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翠订,一起剝皮案震驚了整個濱河市巢音,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尽超,老刑警劉巖官撼,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異似谁,居然都是意外死亡傲绣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門巩踏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秃诵,“玉大人,你說我怎么就攤上這事塞琼〔ぞ唬” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嗤练。 經(jīng)常有香客問我,道長在讶,這世上最難降的妖魔是什么煞抬? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮构哺,結(jié)果婚禮上革答,老公的妹妹穿的比我還像新娘。我一直安慰自己曙强,他們只是感情好残拐,可當(dāng)我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碟嘴,像睡著了一般溪食。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娜扇,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天错沃,我揣著相機與錄音,去河邊找鬼雀瓢。 笑死枢析,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刃麸。 我是一名探鬼主播醒叁,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼泊业!你這毒婦竟也來了把沼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤吁伺,失蹤者是張志新(化名)和其女友劉穎智政,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體箱蝠,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡续捂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宦搬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牙瓢。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖间校,靈堂內(nèi)的尸體忽然破棺而出矾克,到底是詐尸還是另有隱情,我是刑警寧澤憔足,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布胁附,位于F島的核電站酒繁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏控妻。R本人自食惡果不足惜州袒,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弓候。 院中可真熱鬧郎哭,春花似錦、人聲如沸菇存。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽依鸥。三九已至亥至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贱迟,已是汗流浹背抬闯。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留关筒,地道東北人溶握。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像蒸播,于是被迫代替她去往敵國和親睡榆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,930評論 2 361

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