[英]Why can't I use my instance in this trait?
我有這個代碼
trait GetCurrentConfigTrait
{
private static ?object $instance;
private ?array $currentConfig;
final public static function getCurrentConfig($name)
{
$class = __CLASS__;
self::$instance = self::$instance ?? new $class();
var_dump(self::$instance);
if(is_array(self::$instance->currentConfig)){ # <<< This line throws the error.
return self::$instance->currentConfig;
}
else{
//Load config
return self::$instance->currentConfig;
}
}
}
但是我收到錯誤$currentConfig must not be accessed before initialization
。 var dump 向我展示了這一點:
object(My\Class)#1 (0) { ["currentConfig":"My\Class":private]=> uninitialized(?array) }
為什么我不能在這里使用我的實例?
問題不在於使用實例,而只是在調用靜態方法時未設置$currentConfig
屬性。 我認為解決問題的最簡單方法是為該屬性提供一個 null 默認值。
private ?array $currentConfig = null;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.