PHP初心者でもわかる!var_export関数の使い方10選

PHPのvar_export関数の使い方を解説するイラスト PHP
この記事は約8分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

こんにちは、PHP初心者の皆さん。

PHPの世界は広大で、学ぶべきものはたくさんあります。

しかし、一歩一歩確実に進んでいけば、必ずあなたのスキルは上達します。

本日は、そんなPHPの関数の一つ、var_export関数の使い方について解説します。

この記事を読めば、PHPで頻繁に用いられるvar_export関数の使い方を理解し、実際に使用することができるようになります。

さらに、その活用例や注意点についても紹介しますので、ぜひ最後までご覧ください。

●var_export関数とは

○基本的な特徴

PHPにはデータを出力するための様々な関数がありますが、その中の一つがvar_export関数です。

var_export関数は、指定した変数の内容を文字列として出力する関数で、配列やオブジェクトなどの複雑なデータ型も扱うことが可能です。

この関数の強力な特性は、配列やオブジェクトのデータを、PHPのコードとして再現可能な形式で出力する点にあります。

これにより、データの状態を保存したり、デバッグ情報を出力したりと、様々な用途に応じて利用できます。

●var_export関数の使い方

○var_export関数の基本的な使用方法

□サンプルコード1:基本的な使用例

早速ですが、var_export関数の基本的な使用方法を見ていきましょう。

単純な数値をvar_export関数で出力する例を例を挙げます。

<?php
$number = 123;
var_export($number);
?>

このコードでは、変数$numberに数値123を代入し、var_export関数を使ってその内容を出力しています。

実行すると、出力結果は「123」となります。

○配列を出力する場合

□サンプルコード2:配列の出力

次に、配列をvar_export関数で出力する例を見てみましょう。

<?php
$array = array("apple", "banana", "cherry");
var_export($array);
?>

このコードでは、$arrayという配列にいくつかのフルーツの名前を格納し、その内容を出力しています。

実行すると、出力結果は次のようになります。

array (
  0 => 'apple',
  1 => 'banana',
  2 => 'cherry',
)

このように、var_export関数は配列の要素だけでなく、それぞれのキーと値の組み合わせまで詳細に出力します。

これにより、複雑な配列でも内容を理解しやすくなります。

○オブジェクトを出力する場合

□サンプルコード3:オブジェクトの出力

次に、オブジェクトをvar_export関数で出力する例を見てみましょう。

簡単なクラスを定義し、そのインスタンスをvar_export関数で出力するコードを紹介します。

<?php
class Fruit {
    public $name;
    public $color;

    function __construct($name, $color) {
        $this->name = $name;
        $this->color = $color;
    }
}

$apple = new Fruit("Apple", "Red");
var_export($apple);
?>

このコードでは、Fruitというクラスを作成し、そのインスタンス$appleを作成しています。

その後、var_export関数で$appleオブジェクトを出力しています。

このコードを実行すると、次のような出力結果が得られます。

Fruit::__set_state(array(
   'name' => 'Apple',
   'color' => 'Red',
))

これにより、オブジェクトの各プロパティの値がどのようなものかを明確に理解することができます。

○インデントを設定する場合

□サンプルコード4:インデントの設定

var_export関数は、出力結果を見やすくするためにインデントを設定することも可能です。

var_export関数の第二引数にtrueを指定して、インデントを設定する例を挙げます。

<?php
$data = array("apple", "banana", "cherry");
echo '<pre>';
var_export($data, true);
echo '</pre>';
?>

このコードでは、$dataという配列にいくつかのフルーツの名前を格納し、その内容を出力しています。

var_export関数の第二引数にtrueを指定すると、結果が文字列として返され、HTMLの<pre>タグと組み合わせることで、ブラウザ上で見やすい形式で出力されます。

○var_exportとprint_rの違い

□サンプルコード5:var_exportとprint_rの比較

var_export関数と同様に、データの内容を出力するためによく使用される関数にprint_r関数があります。

しかし、これらは何が違うのでしょうか。

下記のコードでは、同じデータをvar_export関数とprint_r関数で出力し、その結果を比較しています。

<?php
$data = array("apple", "banana", "cherry");

echo "var_export:\n";
echo var_export($data, true);


echo "\n\n";

echo "print_r:\n";
echo print_r($data, true);
?>

このコードを実行すると、var_export関数とprint_r関数で出力形式が異なることが分かります。

var_export関数は、配列やオブジェクトの内容を詳細に出力し、その結果は有効なPHPコードとして再利用できます。

一方、print_r関数は、内容を人間が読みやすい形式で出力しますが、その結果をPHPコードとして再利用することはできません。

●var_export関数の応用例

これまでに説明した基本的な使い方の他にも、var_export関数はプログラミングにおける多くの場面で応用可能です。

特にデバッグやデータの保存・復元といった場面での使用が有効です。

○デバッグ時の利用

□サンプルコード6:デバッグ時の利用例

PHPプログラミングにおけるデバッグ時に、var_export関数は非常に役立ちます。

特に、変数の中身を具体的に知りたい場合には頻繁に使用されます。

配列の中身をチェックするためにvar_export関数を使用する一例を挙げます。

<?php
$data = array("apple", "banana", "cherry");

echo '<pre>';
var_export($data);
echo '</pre>';
?>

このコードでは、$dataという配列にいくつかのフルーツの名前を格納し、その内容を出力しています。

このようにvar_export関数を使用することで、変数の中身を正確に把握することができ、デバッグ作業をよりスムーズに進めることが可能になります。

○データの保存・復元時の利用

□サンプルコード7:データの保存・復元時の利用例

また、var_export関数はデータの保存や復元時にも活用できます。

配列の内容を文字列としてファイルに保存し、その後それを再度読み込んで復元する例を紹介します。

<?php
$data = array("apple", "banana", "cherry");

$file_path = 'data.txt';
file_put_contents($file_path, '<?php return '.var_export($data, true).';');

// load the data
$loaded_data = include($file_path);

echo '<pre>';
var_export($loaded_data);
echo '</pre>';
?>

このコードでは、最初に$data配列にいくつかのフルーツの名前を格納します。

次に、var_export関数を使って配列の内容を文字列化し、それをdata.txtというファイルに保存します。

保存する際には、'<?php return '.var_export($data, true).';'という形式で保存し、PHPのコードとして保存します。

その後、include関数を使って保存したファイルを読み込みます。

すると、保存した配列の内容がそのまま復元されます。

このように、var_export関数を使うことで、データの保存と復元が容易になります。

●var_export関数の注意点

var_export関数を使用する際の注意点を解説していきます。

1つ目の注意点は、var_export関数が生成する出力は有効なPHPコードであるということです。

これは通常は便利な特性ですが、ユーザーからの入力をそのままvar_export関数に渡してしまうと、予期しないコードが実行される可能性があるため注意が必要です。

2つ目の注意点は、var_export関数は内部的に再帰を使用しているため、深いネストレベルや巨大なデータ構造に対してはメモリを大量に消費する可能性があります。

そのため、var_export関数を使用する際には、データのサイズやネストの深さに注意することが重要です。

まとめ

以上、PHP初心者にも理解しやすいように、var_export関数の使い方とその応用例について詳しく解説してきました。

この関数をうまく使うことで、データの出力やデバッグ、データの保存・復元など、様々な場面で役立つことでしょう。

プログラミングスキルをさらに向上させるためには、今回紹介したような組み込み関数の理解と活用が欠かせません。

ぜひ、自身のコードにvar_export関数を取り入れてみてください。