代码示例


简单的 Hello World

“Hello World.” 是大多数初学者学习编程语言时编写的第一个程序。以下是如何在 PHP 中打印 "Hello World!" 的示例。

代码:

<?php
  echo "Hello World!";
  echo "We are learning PHP!";

输出:

Hello World!
We are learning PHP!

这就是 PHP 的最基本形式。简单的三行代码:第一行标明从 <?php 标签开始的内容是 PHP 代码(直到文件结束或遇到 ?> 标签)。第二行和第三行在网页上输出一段问候语。下面的示例稍微复杂一些,它使用了变量。

使用变量的 Hello World

此示例将字符串 "Hello World!" 存储在名为 $string 的变量中。接下来的代码展示了几种不同的方法将变量 $string 显示到屏幕上。

PHP 代码:

<?php
  // 声明变量 'string' 并为其赋值。
  // <br> 是 HTML 的换行符。
  $string = 'Hello World!<br>';

  // 可以通过 echo 输出变量,与输出字符串类似。
  echo $string;

  // 也可以使用 print。
  print $string;

  // 如果熟悉 C 语言,还可以使用 printf。
  printf('%s', $string);

PHP 输出:

Hello World!<br>Hello World!<br>Hello World!<br>

HTML 渲染:

Hello World!
Hello World!
Hello World!

以上示例包含两种输出方式。PHP 可以输出 HTML,浏览器会格式化并显示这些内容。PHP 输出框展示的是 PHP 的直接输出,而 HTML 渲染框显示的是浏览器处理后的效果。请不要混淆,这只是为了说明 PHP 可以输出 HTML。我们将在后续内容中对此进行更深入的讨论。

新概念


变量

变量是任何编程语言的基础:它们是存储数据的“容器”(内存中的空间)。这些数据是可以改变的,因此它是“可变的”。

如果你有其他编程语言的经验,你知道在某些语言中,你必须定义变量将存储的数据类型。这些语言被称为静态类型语言,因为在存储数据之前,变量的类型必须是已知的。例如,C++ 和 Java 就是静态类型语言。另一方面,PHP 是动态类型语言,因为变量的类型是与变量的值相关联的。你可以为一个字符串定义一个变量,存储一个字符串,然后用一个数字替换字符串。如果在 C++ 中做同样的事情,你就需要强制转换(即更改变量的类型),并将其存储到一个不同的“容器”中。

PHP 中的所有变量都遵循美元符号($)后跟标识符的格式,即 $variable_name。这些标识符是区分大小写的,这意味着大小写非常重要,$wiki$Wiki 是不同的变量名。

现实世界的类比

为了将变量与现实世界的物品进行比较,可以把你计算机的内存想象成一个储物棚。一个变量就像这个储物棚中的一个箱子,而箱子里的内容(比如杯子)就是变量中的数据。

如果箱子上标有“厨房用品”,而箱子里的内容是一个杯子,那么 PHP 代码就像是这样:

$kitchen_stuff = 'cup';

如果我进入储物棚,打开标有“厨房用品”的箱子,然后把杯子换成叉子,那么新代码将是:

$kitchen_stuff = 'fork';

注意代码中间添加了 =,并且在代码块的结尾添加了 ;= 是赋值运算符,或者说是在我们的类比中,它是随箱子附带的说明,告诉我们“把杯子放进箱子里”。而 ; 表示停止当前代码块的评估,或者在我们的类比中,表示完成当前任务并继续处理其他事情。

还要注意,杯子是用单引号括起来的,而不是双引号。使用双引号会告诉 PHP 解析器,可能不止一个杯子进入箱子,并且需要寻找额外的说明。

$bathroom_stuff = 'toothbrush'; 
$kitchen_stuff = "cup $bathroom_stuff";

// $kitchen_stuff 内容现在是 'cup toothbrush'

单引号告诉 PHP 解析器它只是一个杯子,而不需要查找任何额外的内容。在这个例子中,原本应该把浴室的物品添加到厨房箱子里的内容只是被添加了名字,而没有实际的数据。

$bathroom_stuff = 'toothbrush';
$kitchen_stuff = 'cup $bathroom_stuff';

// $kitchen_stuff 内容现在是 'cup $bathroom_stuff'

所以,再次强调,通过这个类比来理解变量的概念。请注意,这是一个现实世界物品的比较,而不是 PHP 代码。

现实世界的类比 PHP 变量的对应
计算机内存(RAM) 储物棚
变量 存放物品的箱子
变量名 箱子上的标签(例如厨房用品)
变量数据 箱子里的内容(例如一个杯子)

注意:你不会将变量命名为 box,因为变量和箱子之间的关系是通过 $ 符号和内存中的数据存储方式来表示的。例如,常量和数组可以被看作是变量的一种类型,它们也是存放某些内容的容器,但它们定义的方式不同,以处理箱子里的内容。

  • 变量:可以在储物棚中打开的箱子,用于交换箱子里的内容。
  • 常量:无法打开的箱子,只能查看其内容,而不能交换内容。
  • 数组:包含一个或多个额外箱子的箱子。为了使初学者更容易理解,每个额外的箱子也可能包含一个箱子。在厨房用品箱中,我们有两个箱子,一个是干净杯子的箱子:
$kitchen_stuff["clean_cup"] = 'the clean cup';

另一个是脏杯子的箱子:

$kitchen_stuff["dirty_cup"] = 'the dirty cup';

变量的更多内容,可以参考 PHP 手册


printecho 语句

print 是输出的关键,它将引号(或括号)中的内容发送到输出设备(浏览器窗口)。一个类似的函数是 echo,但 print 允许用户检查输出是否成功。

当使用引号时,如:

print "Hello, World!";

引号中的文本会被视为字符串,因此可以与字符串连接(将两个字符串连接在一起)运算符一起使用,也可以与任何返回字符串值的函数一起使用。

以下两个例子的输出相同:

print "Hello, World!";

print "Hello" . ", " . "World!";

点号(.)是连接两个字符串的运算符。在其他编程语言中,字符串连接使用加号(+),而点号通常用于调用类中的函数。

此外,值得注意的是,在大多数情况下,echo 可以与 print 互换使用。print 返回一个值,因此可以用来测试是否成功打印,而 echo 假设一切都已成功。在大多数情况下,如果 echo 失败,我们也无法做什么。

以下示例的输出也是相同的:

echo "Hello, World!";

echo "Hello" . ", " . "World!";

我们在本书的大多数章节中将使用 echo,因为它是更常用的语句。

值得注意的是,虽然 echoprint 可以像函数一样被调用,但它们实际上是语言结构,调用时可以省略括号。其他正常的函数(几乎所有的其他函数)必须在函数标识符后跟括号才能调用。


外部链接

Last modified: Thursday, 9 January 2025, 11:54 AM