PHP 文件

从现在开始,我们将处理您的 index.php 文件,因此您只需启动 Web 服务器,然后转到 http://localhost:8080 即可查看结果。

您可能已经注意到,要编写 PHP 代码,必须以 <?php 开始文件。还有其他选项,您也可以用 ?> 结束文件,但这些都不是必需的。重要的是,只要你用 <?php ?> 标记将 PHP 代码与其他内容(如 HTML、CSS 或 JavaScript)括起来,你就可以在 PHP 文件中将 PHP 代码与其他内容(如 HTML、CSS 或 JavaScript)混合在一起。

<?php
    echo 'hello world';
?>
// bye world

如果在浏览器中查看前面代码段的结果,就会发现它同时打印了 hello worldbye world 两条信息。出现这种情况的原因很简单:你已经知道 PHP 代码会打印 hello world 消息。接下来发生的事情是,PHP 标记之外的任何内容都将按原样解释。例如,如果有 HTML 代码,就不会按原样打印,而是由浏览器解释。

您将在第 6 章 "适应 MVC" 中了解到为什么混合使用 PHP 和 HTML 通常是个坏主意。现在,假设这种做法不好,我们就尽量避免。为此,您可以使用以下四个函数中的任何一个,从另一个 PHP 文件中包含一个文件:

  • include:每次调用时都会尝试查找并包含指定的文件。如果找不到文件,PHP 会发出警告,但会继续执行。

  • require:该函数的作用与 include 相同,但如果未找到文件,PHP 将发出错误而不是警告。

  • include_once:该函数的作用与 include 相同,但只在第一次调用时包含该文件。之后的调用将被忽略。

  • require_once:该函数的作用与 require 相同,但它仅在首次调用时包含文件。之后的调用将被忽略。

每种函数都有自己的用途,因此不能说一种比另一种更好。只要仔细考虑一下你的情况,然后再做决定。例如,让我们尝试在 index.php 文件中包含 index.html 文件,这样我们就不会把 PHP 和 HTML 混为一谈,而是两全其美:

<?php
echo 'hello world';
require 'index.html';

我们之所以选择 require,是因为我们知道文件就在那里—​如果不在,我们也没兴趣继续执行。此外,由于这是一些 HTML 代码,我们可能想多次包含它,所以我们没有选择 require_once 选项。您可以尝试要求一个不存在的文件,看看浏览器会怎么说。

PHP 不考虑空行;您可以添加任意数量的空行,以使代码更易于阅读,这不会对您的应用程序产生任何影响。另一个有助于编写可理解代码的元素是注释,PHP 会忽略它。让我们来看看这两种元素的作用:

<?php
/*
* This is the first file loaded by the web server.
* It prints some messages and html from other files.
*/

// let's print a message from php
echo 'hello world';

// and then include the rest of html
require 'index.html';

这段代码的功能与之前的代码相同,但现在大家会很容易理解我们要做什么。我们可以看到两种类型的注释:单行注释和多行注释。第一种是以 // 开头的单行注释,第二种是以 /**/ 开头的多行注释。我们在每行注释的开头加上星号,但这完全是可选的。