簡體   English   中英

PHP - 使用常量的值來引用數據成員

[英]PHP - Using a constant's value to reference a data member

我試圖通過使用常量來訪問一個類對象的數據成員。 我想知道這是否可能使用類似於我正在使用的語法?

當我嘗試在以下腳本中執行此操作時,我收到此錯誤: 解析錯誤:語法錯誤,意外T_PAAMAYIM_NEKUDOTAYIM

class Certificate {
    const BALANCE = 'cert_balance';

    public function __construct() {}

}

class Ticket {
    public $cert_balance = null;

    public function __construct()
    {
        $this->cert_balance = 'not a chance';
        echo $this->cert_balance."<br />";
    }
}

$cert = new Certificate();

$ticket = new Ticket();

// This next code line should be equal to: $ticket->cert_balance = 'nice'; 

$ticket->$cert::BALANCE = 'nice!';

您需要使用大括號消除表達式的歧義。 此外,在PHP 5.3之前,您需要通過類名引用常量,如下所示:

$ticket->{Certificate::BALANCE} = 'nice!';

關於類常量PHP手冊部分說明了這一點

從PHP 5.3.0開始,可以使用變量引用該類

所以在PHP 5.3.0及更高版本中,這將起作用:

$ticket->{$cert::BALANCE} = 'nice!';

做:

$ticket->{$cert::BALANCE} = 'nice';

所以解析器知道它必須首先處理$cert::BALANCE 看來你需要PHP 5.3才能工作。 否則,請使用classname而不是$cert

關鍵是你必須把它放進{}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM