美文网首页
《简明 PHP 教程》04 基础

《简明 PHP 教程》04 基础

作者: 展白说 | 来源:发表于2018-08-31 12:54 被阅读78次

    只是打印出 hello world 肯定是不够的,是吗?你会希望做得比这还要多——你想要输入一些内容,操纵它,然后从中得到一些输出出来的内容。我们可以在 PHP 中通过使用变量与常量来实现这一目标,在本章中我们还会学习其它的一些概念。

    PHP 标记

    当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php?>,这告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略。

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

    注释

    PHP 支持 C,C++ 和 Unix Shell 风格(Perl 风格)的注释。例如:

    <?php
        echo "This is a test"; // 这是 C++ 风格的单行注释
        /* 这是一个
           多行注释 */
        echo "This is yet another test";
        echo 'One Final Test'; # 这是 shell 风格的单行注释
    

    注释主要用作写给程序读者看的笔记。

    C 风格的注释在碰到第一个 */ 时结束。要确保不要嵌套 C 风格的注释。试图注释掉一大块代码时很容易出现该错误。

    <?php
     /*
        echo "This is a test"; /* 这个注释将要引起问题 */
     */
    

    你应该在你的程序中尽可能多地使用有用的注释:

    • 解释假设
    • 说明重要的决定
    • 解释重要的细节
    • 说明你想要解决的问题
    • 说明你想要在程序中克服的问题,等等。

    代码会告诉你怎么做,注释会告诉你为何如此。

    这样做对你的程序的读者来说非常有用,他们可以很容易地理解你的程序是做什么的。请记住,这个人可以是六个月后的你!

    常量

    常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变。常量默认为大小写敏感。传统上常量标识符总是大写的。

    常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。

    <?php
    
    // 合法的常量名
    define("FOO",     "something");
    define("FOO2",    "something else");
    define("FOO_BAR", "something more");
    
    // 非法的常量名
    define("2FOO",    "something");
    
    // 下面的定义是合法的,但应该避免这样做:(自定义常量不要以__开头)
    // 也许将来有一天PHP会定义一个__FOO__的魔术常量
    // 这样就会与你的代码相冲突
    define("__FOO__", "something");
    

    常量的范围是全局的。不用管作用区域就可以在脚本的任何地方访问常量。

    变量

    PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。

    变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。

    <?php
    $var = 'Bob';
    $Var = 'Joe';
    echo "$var, $Var";      // 输出 "Bob, Joe"
    
    $4site = 'not yet';     // 非法变量名;以数字开头
    $_4site = 'not yet';    // 合法变量名;以下划线开头
    $i站点is = 'mansikka';  // 合法变量名;可以用中文
    

    变量默认总是传值赋值。那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。

    PHP 也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。

    使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前(源变量)。例如,下列代码片断将输出“My name is Bob”两次:

    <?php
    $foo = 'Bob';              // 将 'Bob' 赋给 $foo
    $bar = &$foo;              // 通过 $bar 引用 $foo
    $bar = "My name is $bar";  // 修改 $bar 变量
    echo $bar;
    echo $foo;                 // $foo 的值也被修改
    

    有一点重要事项必须指出,那就是只有有名字的变量才可以引用赋值。

    类型

    PHP 支持 9 种原始数据类型。

    四种标量类型:

    • boolean(布尔型)
    • integer(整型)
    • float(浮点型,也称作 double)
    • string(字符串)

    三种复合类型:

    • array(数组)
    • object(对象)
    • callable(可调用)

    两种特殊类型:

    • resource(资源)
    • NULL(无类型)

    Boolean 布尔类型

    这是最简单的类型。boolean 表达了真值,可以为 TRUE 或 FALSE。

    要指定一个布尔值,使用常量 TRUE 或 FALSE。两个都不区分大小写。

    <?php
    $foo = True; // 设置 $foo 为 TRUE
    

    Integer 整型

    integer 是集合 ℤ = {..., -2, -1, 0, 1, 2, ...} 中的某个数。

    整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。

    <?php
    $a = 1234; // 十进制数
    $a = -123; // 负数
    $a = 0123; // 八进制数 (等于十进制 83)
    $a = 0x1A; // 十六进制数 (等于十进制 26)
    $a = 0b11111111; // 二进制数字 (等于十进制 255)
    

    Float 浮点型

    浮点型(也叫浮点数 float,双精度数 double 或实数 real)可以用以下任一语法定义:

    <?php
    $a = 1.234; 
    $b = 1.2e3; 
    $c = 7E-10;
    

    String 字符串

    一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。

    单引号

    定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ')。

    <?php
    echo 'this is a simple string';
    

    双引号

    如果字符串是包围在双引号(")中, PHP 将对一些特殊的字符进行解析,如 \n 换行,\t 水平制表符等。另外最重要的特征是变量会被解析。

    Heredoc 结构

    第三种表达字符串的方法是用 heredoc 句法结构:<<<

    <?php
    $str = <<<EOD
    Example of string
    spanning multiple lines
    using heredoc syntax.
    EOD;
    

    Array 数组

    PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。

    <?php
    $array = array(
        "foo" => "bar",
        "bar" => "foo",
    );
    
    // 自 PHP 5.4 起
    $array = [
        "foo" => "bar",
        "bar" => "foo",
    ];
    

    key 可以是 integer 或者 string。value 可以是任意类型。可以不指定键名,或者对某些单元指定键名。

    数组单元可以通过 array[key] 语法来访问。

    <?php
    $array = array(
        "foo" => "bar",
        42    => 24,
        "multi" => array(
             "dimensional" => array(
                 "array" => "foo"
             )
        )
    );
    
    var_dump($array["foo"]);
    var_dump($array[42]);
    var_dump($array["multi"]["dimensional"]["array"]);
    

    Object 对象

    要创建一个新的对象 object,使用 new 语句实例化一个类:

    <?php
    class foo
    {
        function do_foo()
        {
            echo "Doing foo."; 
        }
    }
    
    $bar = new foo;
    $bar->do_foo();
    

    接下来我们将看见如何使用变量与常量。你需要保存以下案例并尝试运行程序。

    如何编写 PHP 程序

    从今以后,保存和运行 PHP 程序的标准步骤如下:

    对于 PhpStorm 用户

    1. 打开 PhpStorm。
    2. 以给定的文件名创建新文件。
    3. 输入案例中给出的代码。
    4. 右键并运行当前文件。

    对于其他编辑器用户

    1. 打开你选择的编辑器。
    2. 输入案例中给出的代码。
    3. 以给定的文件名将其保存成文件。
    4. 在解释器中通过命令 php program.php 来运行程序。

    案例:使用变量与常量

    输入并运行以下程序:

    <?php
    # 文件名:var.py
    $i = 5;
    echo $i . "\n";
    $i = $i + 1;
    print $i . "\n";
    
    $s = <<<EOT
    This is a multi-line string.
    This is the second line.
    EOT;
    print $s;
    

    输出:

    5
    6
    This is a multi-line string.
    This is the second line.
    

    它是如何工作的

    下面是这一程序的工作原理。首先,我们使用赋值运算符(=)将常量数值 5 赋值给变量 $i。这一行被称之为声明语句(Statement)因为其工作正是声明一些在这一情况下应当完成的事情:我们将变量名 $i 与值 5 相连接。然后,我们通过 echo 语句来打印变量 $i 所声明的内容,这并不奇怪,只是将变量的值打印到屏幕上。这里我们同时打印了 \n 是为了换行。

    接着,我们将 1 加到 $i 变量所存储的值中,并将得出的结果重新存储进这一变量。然后我们将这一变量打印出来,并期望得到的值应为 6

    类似地,我们将文本赋值给变量 $s,并将其打印出来。

    针对静态编程语言程序员的提示

    变量只需被赋予某一值。不需要声明或定义数据类型。

    逻辑行与物理行

    所谓物理行(Physical Line)是你在编写程序时你所看到的内容。所谓逻辑行(Logical Line)是 PHP 所看到 的单个语句。PHP 以 ; 作为不同逻辑行的结束与分隔。

    PHP 鼓励每一行使用一句独立语句从而使得代码更加可读。

    如果你有一行非常长的代码,你可以通过使用反斜杠将其拆分成多个物理行。

    $s = 'This is a string. \
    This continues the string.';
    echo $s;
    

    输出:

    This is a string. This continues the string.
    

    缩进

    空白区在各行的开头,这被称作缩进(Indentation)。在逻辑行的开头留下空白区(使用空格或制表符)用以确定各逻辑行的缩进级别,而后者又可用于确定语句的分组。

    这意味着放置在一起的语句拥有相同的缩进。每一组这样的语句被称为块(block)

    如何缩进

    使用四个空格来缩进。好的编辑器会自动为你完成这一工作。请确保你在缩进中使用数量一致的空格。

    总结

    现在我们已经了解了诸多本质性的细节,我们可以前去了解控制流语句等更多更加有趣的东西。记得一定要充分理解你在本章所阅读的内容。

    链接:https://blog.zhanxiaobai.com/2018/08/31/a-byte-of-php-04-basics/

    相关文章

      网友评论

          本文标题:《简明 PHP 教程》04 基础

          本文链接:https://www.haomeiwen.com/subject/wwsswftx.html