建立和獲取 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