PHP编程
代码示例
简单的 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 手册
print
和 echo
语句
print
是输出的关键,它将引号(或括号)中的内容发送到输出设备(浏览器窗口)。一个类似的函数是 echo
,但 print
允许用户检查输出是否成功。
当使用引号时,如:
print "Hello, World!";
引号中的文本会被视为字符串,因此可以与字符串连接(将两个字符串连接在一起)运算符一起使用,也可以与任何返回字符串值的函数一起使用。
以下两个例子的输出相同:
print "Hello, World!";
和
print "Hello" . ", " . "World!";
点号(.
)是连接两个字符串的运算符。在其他编程语言中,字符串连接使用加号(+
),而点号通常用于调用类中的函数。
此外,值得注意的是,在大多数情况下,echo
可以与 print
互换使用。print
返回一个值,因此可以用来测试是否成功打印,而 echo
假设一切都已成功。在大多数情况下,如果 echo
失败,我们也无法做什么。
以下示例的输出也是相同的:
echo "Hello, World!";
和
echo "Hello" . ", " . "World!";
我们在本书的大多数章节中将使用 echo
,因为它是更常用的语句。
值得注意的是,虽然 echo
和 print
可以像函数一样被调用,但它们实际上是语言结构,调用时可以省略括号。其他正常的函数(几乎所有的其他函数)必须在函数标识符后跟括号才能调用。