如何在 PHP 中使用常量

本文详细介绍了如何在PHP中使用`define()`函数和`const`关键字定义常量,包括它们的区别、用法以及在命名空间中的应用。常量是不可变的,全局可见,且在运行时或编译时设置。`define()`在运行时处理,允许有条件定义;而`const`在编译时处理,适用于全局和类中声明。
摘要由CSDN通过智能技术生成

在本教程中,我们将向您展示如何在 PHP 中定义和使用常量。

在 PHP 中,常量是保存指定值的标识符。存储在常量中的值只能在运行时定义。

定义后,您无法更改存储在常量中的值。这对于您希望在整个 PHP 脚本中访问并且不希望或不需要更改其值的值很有帮助。 

例如,您可以在 PHP 中使用常量来存储 SQL Server 的登录详细信息,以便在运行时访问。

有两种方法可以在 PHP 中定义常量。

  • 第一种方法是利用define()函数。这些常量在运行时处理。
  • 第二种方法是使用“ const”关键字。使用它定义的常量是在运行代码之前的编译期间设置的。

我们将探索这些方法,并在本指南中解释它们之间的一些根本区别。

在 PHP 代码中命名常量时,应始终使用大写字母。此外,常量仍然遵循标准变量命名规则。

常量必须以字母或下划线开头,后跟字母、数字或下划线。但是,这将有助于避免编写以两个下划线开头和结尾的常量。PHP 的“魔术常量”通常使用这些。

在代码中引用常量时,不要$在其名称前使用美元符号 ( )。因此,例如,您将使用“ FTP_DETAILS”而不是“ $FTP_DETAILS”。

最后,默认情况下,常量可以在整个脚本中自动访问,这意味着 PHP 可以在整个代码中访问它们。

使用 PHP 的 define() 函数定义常量

define()函数是将变量定义为 PHP 语言中的常量的两种方法之一。它不像“ const”关键字那样易于阅读,但仍有一些优势。

当使用此函数定义常量时,它们直到运行时才会被处理。这意味着您可以使用PHP 的条件语句来指示是否定义了常量。

使用 define 函数的语法很简单,它只有两个你需要担心的参数。

define(NAME, VALUE)

第一个参数 ( NAME) 用于设置常量名称。

请记住,在此处设置名称时,应使用大写字母。因此,例如,PHP 中常量的有效名称应该是“ FTP_DETAILS”。

第二个 ( VALUE) 参数用于设置要分配给常量的值。

使用 define() 在 PHP 中基本声明一个常量

define()让我们向您展示使用该函数在 PHP 中声明一个常量是多么简单。

我们将WEBSITE为此常量使用名称“”,并将值设置为包含“ pimylifeup.com”的字符串。

您可以看到,当我们使用 define 函数时,我们将变量名传递给第一个参数,然后将我们想要设置的值传递给第二个参数。

然后我们利用PHP 的内置 echo 函数来输出我们设置常量的值。

<?php
define("WEBSITE", "pimylifeup.com");
echo WEBSITE;
?>

请记住,您必须避免$在其名称前使用美元符号 ( ) 来使用常量。一个常量纯粹是用它的名字来引用的。因此,例如,您将使用“ CONSTANT”,而不是“ $CONSTANT”。

用 define() 声明的常量是全局的

使用该define()函数声明的常量对当前 PHP 脚本全局可用。您甚至可以在函数和类中使用它。

为了展示这一点,让我们编写一个简单的脚本。该脚本将包含一个被调用的函数,该函数将在调用foo()时输出我们的常量的值。

通过这个示例,您可以看到如何在函数中仍然使用常量。

<?php
define("WEBSITE", "pimylifeup.com");

function foo() {
    echo WEBSITE;
}

foo();
?>

同样,如果我们要编写一个名为 Bar 的简单类,您可以看到仍然可以在其中使用 PHP 常量。

我们将使用与define()前面示例相同的“ ”函数。这次我们将创建一个简单的类,叫做“ Bar”。在这个类的构造方法中,我们将回显“ WEBSITE”常量的值。

<?php
define("WEBSITE", "pimylifeup.com");

class Bar 
{
    public function __construct() {
        echo WEBSITE;
    }
}

new Bar();
?>

在不同的命名空间中声明 PHP 中的常量

在使用不同命名空间的 define 函数时声明一个常量并不是最清晰的代码。默认情况下,define 函数也将默认使用全局命名空间。

在特定命名空间中声明常量时,您需要将该命名空间作为其名称的一部分。

例如,如果您希望常量成为名为“ pimylifeup”的名称空间的一部分,您可以使用“ pimylifeup\NAME”。

下面的示例向您展示了如何在特定命名空间下使用 define 函数声明一个常量。

然后我们打印在当前命名空间下创建的常量。

<?php
namespace pimylifeup;

define("pimylifeup\WEBSITE", "pimylifeup.com");

echo namespace\WEBSITE;
?>

除非需要,否则应使用“ const”关键字。它将自动在当前命名空间下声明。

在 PHP 中使用 Define() 函数有条件地声明常量

与“const”关键字相比,使用define() 函数来声明常量的主要优势在于处理它们的时间。

直到运行时才使用该define()函数处理常量,这意味着可以有条件地设置它。

相反,使用“ const”关键字定义的常量在编译时处理。这意味着它们是在任何代码运行之前定义的。

在下面的例子中,我们使用“ defined()”函数来查看常量是否已经被定义。如果没有,我们声明它。

如果可以在代码的其他地方定义常量,则此代码段很有用。

<?php
if (!defined("WEBSITE")) {
    define("WEBSITE", "pimylifeup.com");
}

echo WEBSITE;
?>

您可以将数组传递给 define() 函数

从 PHP 7 开始,可以在使用 define 函数时使用数组作为常量的值。

在 7.0 版本之前,每当您想将数组定义为常量时,都需要使用 const 关键字。

您需要做的就是将值设置为数组。我们将编写一个简单的示例,FOOD用一个简单的数组声明“ ”常量。

您可以像在 PHP 中访问普通数组一样访问常量数组的元素。通过下面的示例,我们将打印出数组的第三个元素。

<?php
define("FOOD", [
    'Apple',
    'Carrot',
    'Raspberry Pie'
];

echo FOOD[2];
?>

在 PHP 中使用 const 关键字定义一个常量

在 PHP 中声明常量的第二种方法是使用 const 关键字。这被认为比使用“ define()”函数更具可读性,并且具有一些行为差异。

使用 const 关键字时,会在编译时设置一个常量,而不是在运行时设置。不幸的是,这意味着您不能在条件语句中使用 const 关键字。

与使用 define() 函数一样,您应该用大写字母或数字编写常量名称。

在 PHP 中使用 const 关键字定义常量的基本语法如下所示。

const NAME = value;

const 关键字声明常量的基本用法

对于本例,我们将使用 PHP 的 const 关键字声明一个新常量。我们将把这个常量命名为“ WEBSITE”并为其赋值“ pimylifeup.com”。

声明后,我们将使用 echo 函数将常量的值打印到屏幕上。

<?php
const WEBSITE = "pimylifeup.com";

echo WEBSITE;
?>

在 PHP 中使用 const 声明全局常量

您可以使用 const 关键字在 PHP 中全局声明常量。您需要做的就是确保它在命名空间或类之外声明。

通过下面的示例,您可以看到我们的“ WEBSITE”常量仍然可以从“ bar()”函数中访问。

当函数被调用时,它会打印出我们全局常量的值。

<?php
const WEBSITE = "pimylifeup.com";

function bar() {
    echo WEBSITE;
}

bar();
?>

您可以使用 const 关键字在 PHP 类中声明常量

与 define 函数不同,您可以使用 const 关键字在类中声明常量。

除非您以不同方式指定它,否则该常量将是可公开访问的。

通过这个示例,我们将向您展示在 PHP 中声明和访问一个类中的常量的各种方法。

当你在类中声明你的常量时,你可以通过使用“ self::”后跟常量名来访问它。

在类之外,您可以通过静态访问类(例如“ foo::”)或通过创建输出常量值的函数来引用常量。

<?php
class foo
{
    const WEBSITE = "pimylifeup.com";

    function print_constant() {
        echo self::WEBSITE;
    }
}

echo foo::WEBSITE;

$foobar = new foo();

$foobar->print_constant();
?>

使用 const 关键字声明的常量采用当前命名空间

在 PHP 中使用 const 关键字声明的常量将采用当前设置的命名空间。

这比使用定义函数要干净得多,在定义函数中,您必须在其声明中包含命名空间。

下面的示例将向您展示使用 const 关键字在命名空间中声明常量是多么容易。然后我们打印声明的值。

<?php
namespace helloworld;

const WEBSITE = "pimylifeup.com";

echo namespace\WEBSITE;
?>

结论

在本指南中,我们向您展示了在 PHP 中声明常量的各种方法。

常量是一个变量,其值在其初始声明后不会也不能更改。PHP 的“ define()”函数允许您声明在运行时创建的常量。

内置的 const 关键字允许您声明在编译时创建的常量。通过在定义函数上使用 this 有一个小的性能提升。

如果您对在 PHP 中处理常量有任何疑问,请在下方发表评论。

要了解有关 PHP 及其各种功能的更多信息,请查看我们的许多其他 PHP 指南。我们也有涵盖其他编程语言的教程。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值