실제 개발에서 특히 사용자 구성 또는 다중 양식 설정을 처리 할 때 통합 구조 및 유사한 컨텐츠가있는 구성 배열을 작성해야합니다. 동일한 구조로 코드를 반복적으로 쓰는 것을 피하기 위해 PHP의 array_fill () 기능은 매우 실용적인 도구가됩니다.
이 기사에서는 Array_Fill ()을 사용하여 기본 구조가있는 구성 배열 템플릿을 만드는 방법을 소개하고 실제 케이스를 통해 시연합니다.
Array_Fill () 은 PHP의 내장 기능으로 지정된 값으로 배열을 채 웁니다.
기능 프로토 타입 :
array_fill(int $start_index, int $count, mixed $value): array
$ start_index : 배열의 시작 색인.
$ count : 삽입 할 요소 수입니다.
$ 값 : 각 요소의 기본값.
사용자 권한 관리 시스템을 개발하고 있다고 가정하고 각 사용자 역할에 대한 권한 구성 배열을 생성해야한다고 가정합니다. 각 구성 항목은 다음 기본 구조를 포함합니다.
[
'read' => false,
'write' => false,
'delete' => false,
'manage' => false,
'callback_url' => 'https://m66.net/api/callback'
]
5 가지 역할에 대한 이러한 구성을 초기화 해야하는 경우 Array_Fill ()을 사용하는 것은 매우 효율적입니다.
<?php
// 기본 구조를 정의합니다
$defaultPermission = [
'read' => false,
'write' => false,
'delete' => false,
'manage' => false,
'callback_url' => 'https://m66.net/api/callback'
];
// 만들다 5 역할 구성 배열
$roles = array_fill(0, 5, $defaultPermission);
// 선택 과목:각 역할에 이름을 할당합니다(예를 들어 admin、editor 기다리다)
$roleNames = ['admin', 'editor', 'author', 'subscriber', 'guest'];
$config = array_combine($roleNames, $roles);
// 확인하려면 결과를 인쇄하십시오
print_r($config);
Array
(
[admin] => Array
(
[read] =>
[write] =>
[delete] =>
[manage] =>
[callback_url] => https://m66.net/api/callback
)
[editor] => Array
(
[read] =>
[write] =>
[delete] =>
[manage] =>
[callback_url] => https://m66.net/api/callback
)
...
)
따옴표 문제 : 동일한 참조 객체에 array_fill () 로 채워져 있습니다 (특히 배열의 경우 중요). 향후 역할 중 하나의 구성을 수정하면 다른 역할도 영향을받습니다.
이 문제를 피하려면 익명 함수와 함께 Array_Map ()을 사용할 수 있습니다.
$roles = array_map(function () use ($defaultPermission) {
return $defaultPermission;
}, range(1, 5));
구조적 일관성 :이 방법은 구조적 일관성이 아직 결정되지 않은 초기화 시나리오에 적합합니다.