(PHP 4, PHP 5, PHP 7, PHP 8)
compact — 変数名とその値から配列を作成する
変数名とその値から配列を作成します。
各引数について、compact() は現在の シンボルテーブル においてその名前を有する変数を探し、 変数名がキー、変数の値がそのキーに関する値となるように追加します。 端的に言うと、extract() の逆の動作をします。
注意:
PHP 7.3 より前のバージョンでは、設定されていない全ての文字列は、単にスキップされます。
var_namevar_namescompact() がとるパラメータの数は可変です。 各パラメータは、変数名を値とする文字列か、 変数名の配列のどちらかとすることができます。 配列は、変数名を値とする別の配列を持つことができます。 compact()はこれを再帰的に処理します。
追加された全ての変数を値とする出力配列を返します。
compact() は、与えられた文字列が示す変数が未定義の場合、
E_WARNING レベルのエラーを発行します。
| バージョン | 説明 |
|---|---|
| 7.3.0 |
compact() は、与えられた文字列が示す変数が未定義の場合、
E_NOTICE レベルのエラーを発行するようになりました。
以前のバージョンでは、設定されていない全ての文字列は、単にスキップされます。
|
例1 compact() の例
<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city", "state");
$result = compact("event", $location_vars);
print_r($result);
?>上の例の出力は以下となります。
Array
(
[event] => SIGGRAPH
[city] => San Francisco
[state] => CA
)
注意: 分かった!
可変変数 は関数内で PHP の スーパーグローバル配列 と併用してはいけませんので、 スーパーグローバル配列を compact() に渡してはいけません。