波哥教你學(xué)PHP7之二:分析我們的第一個程序語法、注釋、代碼規(guī)范、UTF8與中文顯示支持、HTML混編

分析我們的第一個程序

<?php
    echo 'This is my first PHP program.';

第一行代碼為

<?php

所有的PHP代碼都需要包含在 <?php?> 之間,第一個為起始標(biāo)簽告訴PHP開始解析,第二個為結(jié)束標(biāo)簽告訴PHP停止解析。PHP 也允許使用短標(biāo)記 <??>,但不鼓勵使用。

大家可能會說,你這個代碼有問題,沒有結(jié)束標(biāo)簽。PHP官方解釋如下。

如果文件內(nèi)容是純 PHP 代碼,最好在文件末尾刪除 PHP 結(jié)束標(biāo)記。這可以避免在 PHP 結(jié)束標(biāo)記之后萬一意外加入了空格或者換行符,會導(dǎo)致 PHP 開始輸出這些空白。

第二行代碼為

    echo 'This is my first PHP program.';

其中 echo 作用為輸出一個或多個字符串,它不是一個函數(shù),它是一個語言結(jié)構(gòu),所以沒有括號。
PHP 需要在每個語句后用分號;結(jié)束指令。
代碼中的單引號''包起來的部分表示它是一個字符串,當(dāng)然,也可以用雙引號來表示。
如下為使用 echo 輸出多個字符串,使用了單雙引號。

    echo "This", ' ', "is my first PHP program.";

在 echo 中使用雙引號時(shí),區(qū)別于單引號的時(shí),可以使用變量,或者一些轉(zhuǎn)義字符,如命令行下的換行符等,建立我們的第二個程序 example_02.php ,并在命令行下運(yùn)行如下命令,原因是\n換行在命令行下才會換行,在瀏覽器上并不會換行。

<?php
    $name = "Smith";
    echo "My name is $name.\nHer name is Mary.\n";

輸出的結(jié)果如下:

My name is Smith.
Her name is Mary.

小伙伴們可能會想,我如果要輸出單引號、雙引號怎么辦?示例如下。

<?php
    echo "She Said \"I'm a Girl\".\n";
    echo 'She Said "I\'m a Girl".\n';

輸出結(jié)果如下:

She Said "I'm a Girl".
She Said "I'm a Girl".\n

我們可以在雙引號里用單引號,可以在單引號用雙引號。如果要在雙引號里用雙引號需要用\"來轉(zhuǎn)義,如果在單引號里用單引號也要用\'來轉(zhuǎn)義。細(xì)心的小伙伴可能注意到結(jié)果里有一個\n,原因很簡單,在單引號里的\r,\n等特殊的ASCII字符時(shí),不進(jìn)行任何處理,只是當(dāng)成字符串。

注釋

注釋就像說明書,讓別人知道你要做什么。注釋應(yīng)該用簡短的語言清晰的描述你的意圖。下面用一個示例來說明一下。

<?php
/**
 * 演示注釋的用法(注釋一)
 *
 * @author      波哥
 * @date        2017-04-19
 * @copyright   Copyright(c) 2017
 */

/**
 * 取錢(注釋一)
 *
 * @param   int     $amount     取錢的金額
 *
 * @return  bool
 */
function getMoney($amount) {
    /* 取錢不能為負(fù)數(shù)或者零 (注釋三) */
    if ($amount <= 0) {
        return false;
    }

    /* 如果錢不夠 (注釋四) */
    if ($exist < $amount) {
        return false;
    } else {
        // 減少該賬戶現(xiàn)有金額  (注釋五) 
        return true;
    }
}

/*
本文件結(jié)束
這是多行注釋
也是無用注釋(注釋六)
*/

沒有注釋的代碼是世界上最垃圾的代碼。有人說,我寫的代碼,不需要注釋,我都記得。是的,現(xiàn)在你能記住,N年之后呢?如果我們接手別人的代碼,一行注釋也沒有,然后代碼量又特別大,我們會是怎么樣的心情呢?所以請大家重視注釋。

多行注釋用 /* */ 包裹,單行也可以用 /* */, 更多的是 //,也可以用 '#',但不推薦。

  1. 注釋一,為文件或者類注釋,告訴大家我這個文件或者類是做什么的。
  2. 注釋二,為方法注釋,@param int $amount 取錢的金額表示 取錢的金額 只接收整數(shù)類型 @return bool表示返回值為布爾類型。
  3. 注釋三、四、五均為單行注釋。一般用來說明一下該處代碼的意圖。
  4. 注釋六,屬于無用注釋,不需要寫。

代碼規(guī)范

上面的例子里,比如方法名,比如注釋,比如縮進(jìn),比如if前面的四個空格,后面的一個空格,這些都是代碼規(guī)范,好的代碼規(guī)范給你的感覺就像國慶閱兵的方陣。

好的代碼規(guī)范會讓你很快融入到對方的代碼邏輯中。越是多人協(xié)作,就越需要統(tǒng)一的代碼規(guī)范來約束。

UTF8與中文顯示支持

從國際化的角度上來講,我是強(qiáng)烈建議大家用UTF8字符集,很多GBK和GB2312的項(xiàng)目也越來越多的遷移到了UTF8上來。

我們使用Sublime Text 3新建一個example_03.php,輸入如下代碼

<?php
    echo '我的名字叫張三';

保存時(shí)編輯器左下角會有如下圖所示,可以清晰的看到是UTF8。如果不確定,請文件/File->Set File Encoding to->UTF8

UTF8格式

Ctrl + B 可以看到?jīng)]有亂碼,可以正常輸出。

如果在瀏覽器里,可能會有亂碼出現(xiàn),如下圖:

亂碼

原因是瀏覽器不知道以什么字符集來顯示,那么我們要明確的告知它以UTF8來顯示,在 example_03.php中加上一段html代碼。

<?php
    echo '<meta charset="utf-8">'; /* 告訴瀏覽器我們要用utf-8 */
    echo '我的名字叫張三';

HTML混編

新建 example_04.php 輸入如下內(nèi)容,并在瀏覽器中打開

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title><?php echo '我是一個HTML與PHP的混合頁面'; ?></title>
</head>
<body>
    <?php echo '<b>我被加粗了</b>'; ?>
    <?php echo '<p>我換行了</p>'; ?>
</body>
</html>

我們可以看到,我們的PHP代碼實(shí)際上是嵌入在了HTML代碼中,最后命名成了example_04.php。

混編

右鍵->查看網(wǎng)頁源代碼

源代碼

我們也可以把html用PHP來全部輸出,如下 example_05.php,它的結(jié)果和 example_04.php 完全一樣。

<?php
    echo '<!DOCTYPE html>';
    echo '<html>';
    echo '<head>';
    echo '<meta charset="utf-8">';
    echo '<title>我是一個HTML與PHP的混合頁面</title>';
    echo '</head>';
    echo '<body>';
    echo '<b>我被加粗了</b>';
    echo '<p>我換行了</p>';
    echo '</body>';
    echo '</html>';

動態(tài)網(wǎng)站的原理就是PHP、JAVA、.NET等語言把數(shù)據(jù)獲取,組合成HTML代碼,輸出,然后我們的瀏覽器解析成我們?nèi)庋劭吹降木理撁妗?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,973評論 19 139
  • 一、php可以做什么 php是一種可以在服務(wù)器端運(yùn)行的編程語言,可以運(yùn)行在Web服務(wù)器端。 php是一門后臺編程語...
    空谷悠閱讀 3,142評論 4 97
  • 之前積累了XSS 有一段時(shí)間,因?yàn)槟壳伴_始了一件有趣的工程,需要整合非常多的知識,其中Web 安全這一塊出現(xiàn)最多的...
    刀背藏身閱讀 9,249評論 0 16
  • 起風(fēng)了 吹起起沙塵 迷了眼 揉著揉著就揉出了淚 沉默 沉默 …… "what are you doing?" 請?jiān)?..
    狗狗我的獨(dú)家記憶閱讀 416評論 1 3
  • 小時(shí)候我特別喜歡狗,家里還曾經(jīng)養(yǎng)過一條叫小黑的狗,每天我放學(xué)的時(shí)候都會跑到村里的學(xué)校門口等我,叼著我的書包,...
    7c5489ad8902閱讀 703評論 0 1