拉拉维尔访问常量与在常量



我在Laravel中定义了常量,如下所示

class urlConstants
{
const url_01= [ 'id' => 1 , 'text' => 'xxxxxx' ] ; 
const url_02= [ 'id' => 2 , 'text' => 'bbbbbb' ] ; 
..
const url_99= [ 'id' => 99 , 'text' => 'ccccc' ] ; 
}

现在我想做的是在urlConstants中定义新数组,其中包括另一个数组,如下所示

class urlConstants
{
const url_01= [ 'id' => 1 , 'text' => 'xxxxxx' ] ; 
const url_02= [ 'id' => 2 , 'text' => 'bbbbbb' ] ; 
..
const url_99= [ 'id' => 99 , 'text' => 'ccccc' ] ;
// I KNOW I CAN DO SOMETHING LIKE BELOW
const commonArray = [ 1 , 2 , 99 ]; 
//
}

但是我想知道是否有任何其他方法可以访问此变量,而不仅仅是键入如下所示的整数

class urlConstants
{
const url_01= [ 'id' => 1 , 'text' => 'xxxxxx' ] ; 
const url_02= [ 'id' => 2 , 'text' => 'bbbbbb' ] ; 
..
const url_99= [ 'id' => 99 , 'text' => 'ccccc' ] ;
// 
const commonArray = [ url_01['id'] , url_01['id'] , url_01['id'] ]; 
//
}

我认为你不需要定义常量commonArray,你可以定义一个静态方法

并通过 constant((调用其他常量

public static function commonArray() {
$common_array = array();
$nums = range(1, 99);
foreach($nums as $n) {
$const_name = 'self::url_'. str_pad($n, 2, '0', STR_PAD_LEFT); // this will return self::url_01, self::url_02,...
$common_array []= constant($const_name)['id']; // call the const url_01, url_02...
}
return $common_array;    
}

因此,您可以通过以下方式调用此 commonArray:

urlConstants::commonArray();

最新更新