PHP实战

波哥教你学PHP7之二:分析我们的第一个程序语法、注释、代码规范

2017-04-20  本文已影响0人  波哥教你学

分析我们的第一个程序

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

第一行代码为

<?php

所有的PHP代码都需要包含在 <?php?> 之间,第一个为起始标签告诉PHP开始解析,第二个为结束标签告诉PHP停止解析。PHP 也允许使用短标记 <??>,但不鼓励使用。

大家可能会说,你这个代码有问题,没有结束标签。PHP官方解释如下。

如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记。这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致 PHP 开始输出这些空白。

第二行代码为

    echo 'This is my first PHP program.';

其中 echo 作用为输出一个或多个字符串,它不是一个函数,它是一个语言结构,所以没有括号。
PHP 需要在每个语句后用分号;结束指令。
代码中的单引号''包起来的部分表示它是一个字符串,当然,也可以用双引号来表示。
如下为使用 echo 输出多个字符串,使用了单双引号。

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

在 echo 中使用双引号时,区别于单引号的时,可以使用变量,或者一些转义字符,如命令行下的换行符等,建立我们的第二个程序 example_02.php ,并在命令行下运行如下命令,原因是\n换行在命令行下才会换行,在浏览器上并不会换行。

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

输出的结果如下:

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';

输出结果如下:

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

我们可以在双引号里用单引号,可以在单引号用双引号。如果要在双引号里用双引号需要用\"来转义,如果在单引号里用单引号也要用\'来转义。细心的小伙伴可能注意到结果里有一个\n,原因很简单,在单引号里的\r,\n等特殊的ASCII字符时,不进行任何处理,只是当成字符串。

注释

注释就像说明书,让别人知道你要做什么。注释应该用简短的语言清晰的描述你的意图。下面用一个示例来说明一下。

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

/**
 * 取钱(注释一)
 *
 * @param   int     $amount     取钱的金额
 *
 * @return  bool
 */
function getMoney($amount) {
    /* 取钱不能为负数或者零 (注释三) */
    if ($amount <= 0) {
        return false;
    }

    /* 如果钱不够 (注释四) */
    if ($exist < $amount) {
        return false;
    } else {
        // 减少该账户现有金额  (注释五) 
        return true;
    }
}

/*
本文件结束
这是多行注释
也是无用注释(注释六)
*/

没有注释的代码是世界上最垃圾的代码。有人说,我写的代码,不需要注释,我都记得。是的,现在你能记住,N年之后呢?如果我们接手别人的代码,一行注释也没有,然后代码量又特别大,我们会是怎么样的心情呢?所以请大家重视注释。

多行注释用 /* */ 包裹,单行也可以用 /* */, 更多的是 //,也可以用 '#',但不推荐。

  1. 注释一,为文件或者类注释,告诉大家我这个文件或者类是做什么的。
  2. 注释二,为方法注释,@param int $amount 取钱的金额表示 取钱的金额 只接收整数类型 @return bool表示返回值为布尔类型。
  3. 注释三、四、五均为单行注释。一般用来说明一下该处代码的意图。
  4. 注释六,属于无用注释,不需要写。

代码规范

上面的例子里,比如方法名,比如注释,比如缩进,比如if前面的四个空格,后面的一个空格,这些都是代码规范,好的代码规范给你的感觉就像国庆阅兵的方阵。

好的代码规范会让你很快融入到对方的代码逻辑中。越是多人协作,就越需要统一的代码规范来约束。

UTF8与中文显示支持

从国际化的角度上来讲,我是强烈建议大家用UTF8字符集,很多GBK和GB2312的项目也越来越多的迁移到了UTF8上来。

我们使用Sublime Text 3新建一个example_03.php,输入如下代码

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

保存时编辑器左下角会有如下图所示,可以清晰的看到是UTF8。如果不确定,请文件/File->Set File Encoding to->UTF8

UTF8格式

Ctrl + B 可以看到没有乱码,可以正常输出。

如果在浏览器里,可能会有乱码出现,如下图:

乱码

原因是浏览器不知道以什么字符集来显示,那么我们要明确的告知它以UTF8来显示,在 example_03.php中加上一段html代码。

<?php
    echo '<meta charset="utf-8">'; /* 告诉浏览器我们要用utf-8 */
    echo '我的名字叫张三';

HTML混编

新建 example_04.php 输入如下内容,并在浏览器中打开

<!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代码实际上是嵌入在了HTML代码中,最后命名成了example_04.php

混编

右键->查看网页源代码

源代码

我们也可以把html用PHP来全部输出,如下 example_05.php,它的结果和 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>';

动态网站的原理就是PHP、JAVA、.NET等语言把数据获取,组合成HTML代码,输出,然后我们的浏览器解析成我们肉眼看到的精美页面。

上一篇下一篇

猜你喜欢

热点阅读