簡體   English   中英

如何從對象而不是其類訪問常量?

[英]How to access a constant from an object instead of its class?

我需要訪問一個屬於一個類的常量,但是我不想直接寫該類的名稱,而是想直接從對象中檢索它。 該對象是另一個對象的屬性。

$this->fetcher::BASE_URL

該語句產生錯誤syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)

這是一個丑陋的解決方法。

<?php
class simpleClass {
    public function __construct() {
        $this->fetcher = new simpleClass2();
    }

    public function printBaseURL() {
        $fetcher = $this->fetcher;
        print 'Base URL: ' . $fetcher::BaseUrl;
    }
}

class simpleClass2 {
    const BaseUrl = 'one';
}


$simpleClass = new simpleClass();

$simpleClass->printBaseURL();

您可以使用函數返回常量

class MyClass
{
   function getConstant() {
       return  self::CONSTANT . "\n";
   }
}

然后調用該函數

$class = new MyClass();
$class->getConstant();

或者簡單地調用常量

MyClass::CONSTANT;

您可以在此處找到有關訪問類內常量的更多信息。 查看“用戶提供的注釋”,那里是很好的示例,並帶有說明。

暫無
暫無

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

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