我在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();