[PHP]compact() 関数について詳しく解説!

PHP

こんにちは!今回は、PHPの便利な関数の一つである compact() 関数について詳しく解説します。この関数は、変数名をキーとして、その値を含む連想配列を作成するために使用されます。

compact() 関数とは?

compact() 関数は、指定された変数名のリストを受け取り、それらの変数の名前をキー、その値を値とする連想配列を返す関数です。この関数は、テンプレートにデータを渡す際や、複数の変数を一度に処理したい場合に便利です。

基本的な使い方

array compact ( mixed $var_name1 [, mixed $var_name2 [, ... ]] )
  • $var_name1, $var_name2, …: 連想配列に含めたい変数名。文字列または配列で指定します。

  1. 基本的な使用例
$name = "John";
$age = 30;
$city = "New York";

$result = compact('name', 'age', 'city');
print_r($result);

この例では、変数 $name$age、および $city の値を持つ連想配列が作成され、以下のような出力が得られます:

Array
(
    [name] => John
    日付未入力 => 30
    [city] => New York
)

配列を使用した例

$name = "Jane";
$age = 25;
$city = "Los Angeles";

$variables = ['name', 'age', 'city'];
$result = compact($variables);
print_r($result);

この例では、変数名を含む配列 $variablescompact() 関数に渡しています。結果は前の例と同じです。

注意点

  • 未定義の変数: compact() 関数は未定義の変数を無視します。つまり、指定された変数名のうち、実際に存在しない変数は結果の配列に含まれません。
$name = "Alice";
$age = 22;

$result = compact('name', 'age', 'city');
print_r($result);

この例では、$city という変数が存在しないため、結果の配列には含まれません。

Array
(
    [name] => Alice
    日付未入力 => 22
)
  • スコープの影響: compact() 関数は呼び出し元のスコープ内で定義されている変数を対象とします。関数内で使用する場合は、その関数のスコープ内の変数が対象になります。

まとめ

compact() 関数は、指定された変数の名前をキー、その値を値とする連想配列を作成する便利な関数です。テンプレートエンジンと組み合わせて使用する場合や、複数の変数を一度に処理したい場合に特に役立ちます。未定義の変数は結果の配列に含まれないため、変数の存在を確認しなくても安心して使用できます。

次回もお楽しみに!Happy coding!

タイトルとURLをコピーしました