php 配列を変数から生成する

  • 作成日 2021.09.23
  • php
php 配列を変数から生成する

phpで、compactを使用して、配列を変数から生成するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

compact使い方

compactを使用すれば、配列を変数から生成することが可能です。

compact("変数名",...);

以下は、配列を変数から生成するサンプルコードとなります。

<?php

$a = 1;
$b = 2;

$result = compact("a","b");

print_r($result);

実行結果

Array
(
    [a] => 1
    [b] => 2
)

存在しない変数名も使用できますが、warningが発生します。

<?php

$a = 1;
$b = 2;

$result = compact("a","c");

print_r($result);

実行結果

PHP Warning:  compact(): Undefined variable $c in /usr/share/nginx/html/sample.php on line 6
PHP Stack trace:
PHP   1. {main}() /usr/share/nginx/html/sample.php:0
PHP   2. compact($var_name = 'a', ...$var_names = variadic()) /usr/share/nginx/html/sample.php:6
Array
(
    [a] => 1
)

また、以下のように配列を使用することも可能です。

<?php

$a = 1;
$b = 2;
$c = 3;

$arr = ["b","c"];

$result = compact("a",$arr);

print_r($result);

実行結果

Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)