PHP基礎(chǔ)語法

一、PHP標(biāo)記

  • <?php echo "hello php"; ?>

  • <? echo "hello php"; ?>

  • <script language="php"> echo "hello php"; </script>

  • <% echo "hello php"; %>

echo 可以輸出任何內(nèi)容到頁面上。

注意:1、3可直接使用,但是2,4需要修改php.ini的配置文件才能使用,只做了解。

二、變量

1、變量命名規(guī)則
  • 變量以 $ 符號(hào)開頭,其后是變量的名稱
  • 變量名稱必須以字母或下劃線開頭
  • 變量名稱不能以數(shù)字開頭
  • 變量名稱只能包含字母數(shù)字字符和下劃線(A-z、0-9 以及 _)
  • 變量名稱對(duì)大小寫敏感($y 與 $Y 是兩個(gè)不同的變量)
2、變量賦值
  • 值賦值:直接給變量賦值。
$name = "xiaoming";

$age = 18;

$num = 10 + "20";   // $num輸出結(jié)果等于30

$a = "gebi"."laowang"  // $a 輸出結(jié)果是gebilaowang

注意:在PHP中 + 只表示數(shù)字相加;? 才表示字符串拼接

打印10個(gè)小明

        for ($i=0; $i < 10; $i++) {
            // echo "小明".($i + 1)."號(hào)<br/>";
            // echo "小明 $i 號(hào)<br/>";
            // echo "小明{$i}號(hào)<br/>";
            echo "小明".($i + 1)."號(hào)<hr/>";
        }

        // PHP中,雙引號(hào)帶有變量解析功能
        // 單引號(hào)為純字符串
        // 雙引號(hào)解析變量的時(shí)候,可以使用{}括起變量名

注意:PHP中,雙引號(hào)帶有變量解析功能,單引號(hào)為純字符串。
雙引號(hào)解析變量的時(shí)候,可以使用{}括起變量名。

  • 引用賦值:將一個(gè)變量的地址賦給另一個(gè)變量,此處需要在變量名前面加上&符號(hào)。
        // &取址運(yùn)算符
        $myAge = 18;
        $yourAge = &$myAge;
        // 取出$myAge的地址,賦給$yourAge,修改$yourAge會(huì)影響$myAge
        $yourAge = 19;

        // 此時(shí)輸出的結(jié)果都是19
        echo $myAge."<br/>";
        echo $yourAge."<br/>";


     // 函數(shù)內(nèi)部修改函數(shù)外部變量的值
     // 如果需要函數(shù)內(nèi)修改函數(shù)外部變量,參數(shù)前面需要添加&符 號(hào),進(jìn)行取址操作。
     function add(&$a){
         $a *= 10;
     }
     $b = 10;
     add($b);
     echo $b."<br/>";  //輸出結(jié)果100
3、變量的變量
    // 變量的變量
    $one = "hello";
    $$one = "world";

    echo $one."".$hello;  //輸出結(jié)果helloworld
4、超全局變量

php提供了很多有用的預(yù)定的變量,用于提供大量與環(huán)境有關(guān)的信息。

(1)、$_SERVER服務(wù)器變量,該全局變量包含著服務(wù)器和客戶端配置及當(dāng)前請(qǐng)求環(huán)境的有關(guān)信息。

  • $_SERVER['SERVER_NAME']:當(dāng)前運(yùn)行腳本所在的服務(wù)器的主機(jī)名

  • $_SERVER['REMOTE_ADDR']:客戶端IP地址

  • $_SERVER['REQUEST_URI']:URI的路徑部分

  • $_SERVER['HTTP_USER_AGENT']:操作系統(tǒng)和瀏覽器的相關(guān)信息

    // 當(dāng)前運(yùn)行腳本所在的服務(wù)器的主機(jī)名
    echo $_SERVER['SERVER_NAME']."<br/>";
    // 客戶端IP地址
    echo $_SERVER['REMOTE_ADDR']."<br/>";
    // URI的路徑部分
    echo $_SERVER['REQUEST_URI']."<br/>";
    // 操作系統(tǒng)和瀏覽器的相關(guān)信息
    echo $_SERVER['HTTP_USER_AGENT']."<br/>";

(2)、$_GET該變量包含使用GET方法傳遞的參數(shù)的有關(guān)信息

(3)、$_POST該變量包含使用POST方法傳遞的參數(shù)的有關(guān)信息

html代碼

    <form class="" action="login.php" method="post">
        <label for="userName">請(qǐng)輸入賬號(hào)</label>
        <input id="userName" type="text" name="userName" value="">
        <br/>
        <label for="pwd">密碼</label>
        <input type="password" name="pwd" value="">
        <br/>
        <label for="phone">手機(jī)號(hào)</label>
        <input type="num" name="phone" value="">
        <br/>
        <input type="submit">
    </form>
html代碼執(zhí)行效果

注意:html代碼必須在服務(wù)器環(huán)境下加載,提交表單時(shí)才有效果。

php代碼

<?php

echo "用戶名: " . $_POST["userName"] . " 密碼: " . $_POST["pwd"]." 手機(jī)號(hào): " . $_POST["phone"];

 ?>
提交表單代碼執(zhí)行效果

(4)、$_REQUEST該變量記錄著通過各種輸入方法傳遞給腳本的變量,如GET POST,但不要用這個(gè)超全局變量,因?yàn)樗话踩宜俣缺容^慢。

(5)、$_COOKIE cookie變量數(shù)組

(6)、$_SESSION 會(huì)話變量數(shù)組

(7)、$_FILES 與上傳文件有關(guān)的變量數(shù)組

(8)、$_ENV 環(huán)境變量數(shù)組

(9)、$GLOBALS 所有全局變量數(shù)組

三、常量

1、常量的定義

常量是指在程序執(zhí)行中無法修改的值。如PI(3.1415926);
在腳本執(zhí)行期間該值不能改變;
常量對(duì)大小寫敏感,通常常量名總是大寫;
常量是全局的,可以在腳本的任何地方引用;
常量使用define()函數(shù);

    // 常量
    define("PI", 3.14);
    echo PI;
2、內(nèi)置常量
  • PHP_OS php所在操作系統(tǒng)的名稱
  • PHP_VERSION 當(dāng)前php的版本號(hào)
    echo PHP_OS;
    echo "</br>";
    echo PHP_VERSION;
3、魔術(shù)常量
  • ______LINE__ 文件中的當(dāng)前行號(hào);

  • ______FILE__ 文件的完整路徑和文件名;

  • ______FUNCTION__ 函數(shù)名稱;

  • ______CLASS__ 類的名稱;

  • ______METHOD__ 類的方法名;

注意:此處下劃線的前后下劃線為2條。

    // 魔術(shù)常量
    echo __LINE__."<br>";
    echo __FILE__."<br>";

    function test () {
        echo __FUNCTION__."<br>";
    };
    test();

四、數(shù)據(jù)類型

1、字符串

字符串有三種定義方式:?jiǎn)我?hào),雙引號(hào),定界符(heredoc);

  • 單引號(hào)字符串中出現(xiàn)的變量不會(huì)被變量的值替代;
  • 雙引號(hào)字符串中最重要的一點(diǎn)是其中的變量會(huì)被變量值替代;

如果遇到美元符號(hào)($),解析器會(huì)盡可能多的取得后面的字符以組成一個(gè)合法的變量名,如果想明確的指定名字的結(jié)束,用大括號(hào)將變量名括起來。

    $age = 18;
    echo "xiaoming{$age}";  // 輸出結(jié)果xiaoming18
  • 字符串定界的方法使用定界符語法“<<<”。
    因?yàn)镻HP是一個(gè)Web編程語言,在編程過程中難免會(huì)遇到用echo來輸出大段的html和javascript腳本的情況,如果用傳統(tǒng)的輸出方法——按字符串輸出的話,肯定要有大量的轉(zhuǎn)義符來對(duì)字符串中的引號(hào)等特殊字符進(jìn)行轉(zhuǎn)義,以免出現(xiàn)語法錯(cuò)誤。如果是一兩處還可以容忍,但是要是一個(gè)完整的html文本或者是一個(gè)200行的js我想是誰都會(huì)崩潰的。這就是PHP為什么要引入一個(gè)定界符的原因——至少一大部分原因是這樣的。
            // 定界符
            $name2 = 'kitty';
            echo <<<AAA
            <table height="20">
                <tr>
                    <td>
                        {$name2}<br/>
                        <script>
                            var p='hello world';
                            document.writeln(p);
                        </script>
                    </td>
                </tr>
            </table>
AAA;
  1. PHP定界符的作用就是按照原樣,包括換行格式什么的,輸出在其內(nèi)部的東西;
  2. 在PHP定界符中的任何特殊字符都不需要轉(zhuǎn)義;
  3. PHP定界符中的PHP變量會(huì)被正常的用其值來替換。
  4. 在語法上尤其需要注意<<<之后的字符是自己定義的,隨便什么都是可以的(比如AAA都可以),但是結(jié)尾處的字符一定要和他一樣,他們是成對(duì)出現(xiàn)的,并且結(jié)尾一定要另起一行,并且改行除了AAA這個(gè)定界符結(jié)尾標(biāo)識(shí)之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出現(xiàn)空格,制表符的話就會(huì)報(bào)錯(cuò)。
  5. 如果在定界符中間出現(xiàn)有PHP的變量,你只需要像在其它字符串中輸出一樣寫就行了,最好用大括號(hào)將其包裹起來。
2、字符串轉(zhuǎn)義
  • \n 換行
  • \r 回車
  • \t 水平制表符(tab鍵)
  • \\\(反斜杠)
  • $ $(美元符)
  • \” “(雙引號(hào))
3、整形(integer)
      $age = 25;
4、浮點(diǎn)型(float, double)
      $num = 5.23;
5、布爾型(boolean)
      $bo = TRUE;
      $bo = FALSE;

五、特殊數(shù)據(jù)類型

1、資源
$fh = fopen("test.txt","r");

2、null

null無,表示沒有值,nul不表示空格,也不表示0;以下情況,則認(rèn)為是null:

  • 沒有設(shè)置為任何預(yù)定義的變量;
  • 明確的賦值為null;
  • 使用函數(shù)unset()清除;

六、自動(dòng)類型裝換

因?yàn)閜hp對(duì)于類型定義非常的松散,所以有時(shí)會(huì)根據(jù)引用變量的環(huán)境將變量自動(dòng)轉(zhuǎn)換為最合適的類型;

相加運(yùn)算時(shí)會(huì)將字符串轉(zhuǎn)換為數(shù)字

$num1 = "12";
$num2 = "13assd";
echo $num1 + $num2;  // 25

判斷語句中以下類型會(huì)被自動(dòng)轉(zhuǎn)換為布爾值

$abc = false; // false
$abc = 1; // true
$abc = -1; // true
$abc = 0; // false
$abc = null; // false
$abc = "haha"; // true
$abc = ""; // false
 if ($abc) {
       echo "hahhahahhah";
}

六、自動(dòng)類型裝換

1、gettype() 返回變量的類型,共有8個(gè)可能的值 string、integer、float、boolean、array、object、null、unknow。
    echo "<hr/>";
    $str = 245.245;
    echo gettype($str);
代碼執(zhí)行效果
2、is_type() 查看變量是屬于某個(gè)類型,是返回TRUE,否則返回FALSE;

true 顯示1,false顯示無。

$age1 = array(134, 134, 45, 24);
echo is_string($age1);

如上代碼執(zhí)行效果為無,如果寫is_array()則返回1。

3、var_dump() 獲取變量的值和類型的詳細(xì)信息
    $age = 1245;
    var_dump($age);
代碼執(zhí)行效果

以上內(nèi)容純屬個(gè)人理解,由于本人水平有限若有錯(cuò)漏之處,敬請(qǐng)指出斧正,小弟不勝感激。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、php可以做什么 php是一種可以在服務(wù)器端運(yùn)行的編程語言,可以運(yùn)行在Web服務(wù)器端。 php是一門后臺(tái)編程語...
    空谷悠閱讀 3,283評(píng)論 4 97
  • 空閑時(shí)間學(xué)習(xí)學(xué)習(xí)php的知識(shí),長(zhǎng)期記錄博客。知識(shí)點(diǎn)比較零散,只是對(duì)感覺有必要注意的知識(shí)點(diǎn)做個(gè)記錄。 雙引號(hào)和單引號(hào)...
    WhisperKarl閱讀 608評(píng)論 1 2
  • 對(duì)于php總的來說屬于后端方面的內(nèi)容,就是服務(wù)器端下面就是他的幾個(gè)特點(diǎn) 1、運(yùn)行在服務(wù)器端:學(xué)會(huì)了PHP,就可以指...
    tinaaaabbb閱讀 381評(píng)論 1 2
  • 1 php的標(biāo)記 <?php echo "hello php" ...
    零點(diǎn)起飛閱讀 189評(píng)論 0 0
  • 著實(shí)是對(duì)微信微博喪失了信心,又想著對(duì)自己生活的點(diǎn)滴能有個(gè)記錄,所以翻著找著來到簡(jiǎn)書了。先試著看吧。 是啊,誰不...
    聽水拾白閱讀 203評(píng)論 0 1

友情鏈接更多精彩內(nèi)容