Php/docs/function.compact

提供:Dev Guides
< Php
移動先:案内検索

compact

(PHP 4, PHP 5, PHP 7)

compact変数名とその値から配列を作成する


説明

compact ( array|string $var_name , array|string ...$var_names ) : array

変数名とその値から配列を作成します。

各引数について、compact() は現在のシンボルテーブルにおいてその名前を有する変数を探し、 変数名がキー、変数の値がそのキーに関する値となるように追加します。 端的に言うと、extract() の逆の動作をします。

注意:

PHP 7.3 より前のバージョンでは、設定されていない全ての文字列は、単にスキップされます。

パラメータ

var_name

var_names

compact() がとるパラメータの数は可変です。 各パラメータは、変数名を値とする文字列か、 変数名の配列のどちらかとすることができます。 配列は、変数名を値とする別の配列を持つことができます。 compact()はこれを再帰的に処理します。


返り値

追加された全ての変数を値とする出力配列を返します。


エラー / 例外

compact() は、与えられた文字列が示す変数が未定義の場合、 E_NOTICE レベルのエラーを発行します。


変更履歴

バージョン 説明
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() に渡してはいけません。

参考

  • extract() - 配列からシンボルテーブルに変数をインポートする