PHPインターフェイスリクエストを開発する場合、特定のパラメーターの着信パラメーターを処理し、デフォルト値を設定する必要があることがよくあります。多くのパラメーターがある場合、アレイを手動で初期化することは冗長でエラーが発生しやすいように見える場合があります。この時点で、 array_fill_keys()は非常に効率的なツールになります。
この記事では、 array_fill_keys()を使用する方法を紹介して、APIリクエストパラメーターのデフォルトの配列をすばやく初期化して、コードの保守性と明確性を改善します。
array_fill_keys()は、 Arrayのキーを統一された値とペアにして新しい配列を生成するためのphpの組み込み関数です。
文法:
array_fill_keys(array $keys, mixed $value): array
$キー:新しい配列のキー名として使用される配列。
$値:すべてのキーのデフォルト値。
記事データをクエリするためのインターフェイスを開発していると想像してください。クライアントは次のパラメーターに渡すことができます。
ページ:現在のページ番号
制限:ページごとの数
ソート:フィールドをソートします
注文:並べ替え方向(ASCまたはDESC)
これらのパラメーターの渡されないユーザーの障害によって引き起こされるシステムエラーを回避するために、背景はデフォルトのパラメーター配列を設定する必要があります。 array_fill_keys()を使用して、このプロセスを簡素化できます。
<?php
// パラメーターキー名を定義します
$paramKeys = ['page', 'limit', 'sort', 'order'];
// 使用 array_fill_keys デフォルト値を初期化します
$defaultParams = array_fill_keys($paramKeys, null);
// デフォルト値を手動で上書きします(必要に応じて)
$defaultParams['page'] = 1;
$defaultParams['limit'] = 10;
$defaultParams['sort'] = 'created_at';
$defaultParams['order'] = 'desc';
// シミュレーションして、クライアントの着信パラメーターを取得します
$userInput = [
'page' => 2,
'order' => 'asc'
];
// ユーザー入力をデフォルト値とマージします(ユーザーの入力優先度)
$requestParams = array_merge($defaultParams, $userInput);
// 最終パラメーター配列を出力します
print_r($requestParams);
Array
(
[page] => 2
[limit] => 10
[sort] => created_at
[order] => asc
)
ご覧のとおり、 array_fill_keys()を使用すると、必要なパラメーター名をリストするだけでクリーンなデフォルトパラメーター構造を初期化し、手動入力エラーの可能性を大幅に削減できます。
これらのパラメーターをリモートインターフェイスhttps://api.m66.net/articles/listに送信したいとします。これを行うことができます。
<?php
$apiUrl = 'https://api.m66.net/articles/list';
$options = [
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'content' => http_build_query($requestParams),
'timeout' => 10
]
];
$context = stream_context_create($options);
$result = file_get_contents($apiUrl, false, $context);
echo $result;
array_fill_keys()を使用して、API要求パラメーターのデフォルト値を初期化することは、簡潔であるだけでなく、コードの保守性も向上します。インターフェイスパラメーターリストが変更された場合、複数の手動割り当てステートメントを変更せずにパラメーターキー配列を更新するだけです。
これは非常に推奨される実践方法であり、特に大規模プロジェクトのパラメーター管理と構造統一に適しています。