创建和获取 PHP 类常量
本教程将查看多个代码示例,这些示例将教你如何创建 PHP 类常量:const
关键字、访问修饰符和 final
关键字。你还将学习如何使用静态变量模拟常量。
在 PHP 中使用 const
关键字创建类常量
PHP 有 const
关键字。你可以使用此关键字来创建常量。
创建后,你可以通过范围解析运算符 ::
访问常量。
在我们的下一个示例中,我们定义了一个类。
在这个类中,我们有一个常量。此外,函数通过范围解析运算符访问此常量。
我们可以使用 Scope Resolution Operator 从类名中直接访问它以显示常量。
<?php
class ClassWithConstant {
const CLASSCONSTANT = 23;
function show_constant() {
echo self::CLASSCONSTANT. "\n";
}
}
echo ClassWithConstant::CLASSCONSTANT;
?>
输出:
23
此外,你可以创建一个新对象。该对象可以通过两种方式显示常量。
- 调用
show_constant
函数来显示常量。 - 通过范围解析运算符
::
显示常量。
你将在下一个代码块中找到这两个选项。
<?php
class ClassWithConstant {
const CLASSCONSTANT = 23;
function show_constant() {
echo self::CLASSCONSTANT. "\n";
}
}
$new_object = new ClassWithConstant();
// Call the inner function
// to reveal the constant
$new_object->show_constant();
// Or, access the constant via scope
// resolution
echo $new_object::CLASSCONSTANT;
?>
输出:
23
23
最后一个选项是将类名分配给字符串变量,然后通过范围解析访问常量。
<?php
class ClassWithConstant {
const CLASSCONSTANT = 23;
function show_constant() {
echo self::CLASSCONSTANT. "\n";
}
}
$class_name = "ClassWithConstant";
echo $class_name::CLASSCONSTANT. "\n";
输出:
23
在 PHP 中使用访问修饰符创建常量
PHP 的访问修饰符是 public
、private
和 protected
。从 PHP 7.1 开始,你可以使用这些访问修饰符创建常量。
此外,任何使用 private
修饰符声明的常量都不能在该类之外访问。
我们的下一个代码示例定义了两个带有 public
和 private
访问修饰符的常量。我们可以通过 Scope Resolution Operator 访问公共常量。
任何访问私有常量
的尝试都会导致致命错误。
<?php
class ClassWithConst {
// As of PHP 7.1.0
public const PUBLICCONSTANT = 'Public Constant';
private const PRIVATECONSTANT = 'Private Constant';
}
echo ClassWithConst::PUBLICCONSTANT . "\n";
?>
输出:
Public Constant
在 PHP 中使用 final
关键字创建常量
使用 final
关键字,你可以模拟公共常量。由于 final
关键字,类范围将限制此常量,谢谢。
此外,你可以在类声明之前编写 final
关键字。通过这样做,final
关键字将阻止继承。
下一个代码展示了如何使用 final
关键字创建常量。首先,在第一个类定义之前有一个 final
关键字。
然后,一个函数调用第二个类定义中的类定义。反过来又返回常数。
<?php
final class ClassWithConstants {
public function getConstant()
{
return 'CONSTANT VALUE';
}
}
class CallClassConstant {
static public function ReturnClassConstant()
{
return new ClassWithConstants();
}
}
$constant_value = CallClassConstant::ReturnClassConstant()->getConstant();
echo $constant_value;
?>
输出:
CONSTANT VALUE
在 PHP 中使用静态变量模拟常量
顾名思义,静态变量并不意味着改变。因此,一旦分配,你将无法更改它们。
这就像常量的行为,因为一旦为它们分配值,你就会希望它们保持不变。
在下面的代码示例中,有一个类定义。此类有一个静态变量设置为 null
。
此外,它还有一个访问修饰符,可以防止外部访问。在类中,我们有一个函数,它在分配后返回静态变量。
此函数将忽略任何重新分配静态变量的进一步尝试。因此,它将始终返回第一个分配的值。
<?php
class ClassWithStaticVars {
private static $static_variable = null;
public static function returnStaticVariable($static_value = null)
{
if (
(is_null(self::$static_variable) === true)
&& (isset($static_value) === true)
) {
self::$static_variable = $static_value;
}
return self::$static_variable . "\n";
}
}
echo ClassWithStaticVars::returnStaticVariable();
echo ClassWithStaticVars::returnStaticVariable(200);
echo ClassWithStaticVars::returnStaticVariable("Hello");
echo ClassWithStaticVars::returnStaticVariable();
?>
输出:
200
200
200
Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.
LinkedIn