📜  PHP oops中const关键字(1)

📅  最后修改于: 2023-12-03 15:03:35.492000             🧑  作者: Mango

PHP OOP中const关键字

在 PHP中的面向对象编程(OOP),const是一个关键字,用于定义不可更改的(即常量)属性。

声明

在类定义中,使用 const 关键字声明一个常量属性。 一旦定义了常量,就无法更改值。

class ClassName
{
    const PI = 3.14;
}

在上面的例子中,我们定义了一个名为PI的常量,并将其值设置为3.14。 我们可以使用以下方式来访问该常量:

echo ClassName::PI;
访问控制

常量可以像其他属性一样使用 public、protected、private 访问修饰符。 以下示例说明了如何定义受保护的常量:

class ClassName
{
    protected const PI = 3.14;
}
class常量 vs. define常量

在 PHP 中,常量可以使用 define()函数定义。 定义常量的方法如下:

define("PI", 3.14);

这种方法与使用 const关键字相比有以下区别:

  1. define()函数必须在类外部使用,而 const关键字定义的常量必须在类内部使用。

  2. 在类内部使用 const定义的常量可以使用类名称或 self关键字来访问,在类外部使用 define()定义的常量必须使用常量名称来访问。

示例

以下示例说明了如何使用 const关键字定义类常量:

class Circle
{
    const PI = 3.14;

    private $radius;

    public function __construct($radius)
    {
        $this->radius = $radius;
    }

    public function getArea()
    {
        return self::PI * $this->radius * $this->radius;
    }
}

$c1 = new Circle(5);
echo $c1->getArea(); //输出78.5

在上面的示例中,我们定义了一个名为Circle的类。 我们在类中定义了一个常量PI,并将其值设为3.14。 然后,是一个构造函数,它需要一个半径参数,并将其分配给半径属性。 最后,我们定义了一个getArea()方法,该方法使用 self关键字和PI常量计算圆的面积。 在创建Circle类的对象时,我们传递了半径值为5,然后打印该对象的getArea()方法来输出圆的面积。

总结

在 PHP OOP中,const 关键字用于定义不可更改的常量属性。 这些常量可以使用 public、protected、private 访问修饰符之一定义,可以使用类名称或 self关键字来访问。 与使用 define()函数定义常量相比,使用 const关键字定义常量具有更多的优势。