1.8 常量介绍

常量像变量一样,用于临时存储一个值,但是常量在许多方面与变量不同。对于初学者,要创建常量,可以使用define()函数,而不是赋值运算符(=)。

define ('NAME', value);

注意:一条经验法则是,全都使用大写字母来命名常量,尽管并非必须如此。最重要的是,常量不会像变量那样使用初始美元符号(因为严格说来常量不是变量)。

只能赋予常量一个标量值,比如字符串或数字:

define ('USERNAME', 'troutocity');
define ('PI', 3.14);

与变量不同的是,不能更改常量的值。

为了访问常量的值,比如当你想打印它时,不能用引号括住常量,比如:

echo "Hello, USERNAME"; // Won't work!

对于这段代码,PHP只会打印出Hello, USERNAME(参见图1-18),而不会打印出USERNAME常量的值(因为没有美元符号告诉PHP,USERNAME是不同于字面量文本的任何内容)。可以代之以单独打印常量:

echo 'Hello, ';
echo USERNAME;

或者使用连接运算符:

echo 'Hello, ' . USERNAME;

PHP运行时利用了几个预定义的常量,这与本章前面使用的预定义变量非常相像。这些常量包括PHP_VERSION(PHP运行的版本)和PHP_OS(服务器的操作系统)。

图1-18 常量不能用引号括起来

使用常量

1. 在文本编辑器或IDE中创建一个新的PHP文档,命名为constants.php(参见脚本1-9)。

脚本1-9 常量是在PHP中可以使用的另一种临时存储工具,它不同于变量

1    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3    <head>
4       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5       <title>Constants</title>
6    </head>
7    <body>
8    <?php # Script 1.9 - constants.php
9    
10   // Set today's date as a constant:
11   define ('TODAY', 'March 16, 2011');
12   
13   // Print a message, using predefined constants and the TODAY constant:
14   echo '<p>Today is ' . TODAY . '.<br /> This server is running version <b>' .  PHP_VERSION .
     '</b> of PHP on the <b>' . PHP_OS . '</b> operating system.</p>';
15   
16   ?>
17   </body>
18   </html>

2. 创建一个新的日期常量。

define ('TODAY', 'March 16, 2011');

人们普遍认为使用常量的意义不大,但是,这个示例将说明其重要性。在第9章中,你将看到如何使用常量来存储你的数据库访问信息。

3. 打印出日期、PHP版本以及操作系统信息。

echo '<p>Today is ' . TODAY . '.<br />This server is running version <b>' . PHP_VERSION . '</b> of PHP on the <b>' . PHP_OS . '</b> operating system.</p>';

因为常量不能打印在双引号内,所以使用连接运算符来创建echo语句。

4. 完成PHP代码和HTML页面。

?>
</body>
</html>

5. 将文件另存为constants.php,存放在Web目录中,并在Web浏览器中测试它(参见图1-19)。

图1-19 通过利用PHP的常量,可以学习关于PHP设置的更多知识

提示

  • 如果可能,可在另一台支持PHP的服务器上运行这个脚本(参见图1-20)。

  • 这个操作系统名为Darwin(参见图1-19),是Mac OS X的技术术语。

  • 在第12章中,你将学到另一个常量SID(它代表会话ID(session ID))。

图1-20 在另一台服务器上运行相同的脚本(参见脚本1-9)会获得不同的结果

目录