この記事では「PHPのvar_dump関数の具体的な活用方法」について解説します。
var_dump関数は、PHPの開発時にデバッグ用として使われます。
WordPressサイトを構築するのであれば、var_dump関数の使い方もマスターしておきましょう。
- var_dumpの使い方が分かる。
- WordPressでのデバッグ方法が分かる。
WordPressのオリジナルテーマ制作を基礎から学びたい!
という方はこちらの記事も参考にしてみてください。
var_dump()とは
var_dump()とは、PHPの関数の一つで、主にPHPの開発時にデバッグ用として使用されることが多いです。JavaScriptでいう、console.log()のようなもので、var_dump()はPHPでエラーが発生したときにどこでエラーが出ているか確認したり、意図通りの値が取れているかなどの確認をすることができます。
var_dump()を使うと、「型」と「値」で出力されます。それ以外にも詳細なデータを出力してくれます。
var_dump()の使い方
var_dump()は以下のように記述します。
<?php
var_dump(変数);
?>
例えば、実際に使用する際は以下のように記述します。
<?php
$array = array(
"fruit1" => "apple",
"fruit2" => "grape",
"fruit3" => "orange",
);
var_dump($array);
?>
出力されている情報は、変数$arrayの中に含まれている「型」や「値」などの情報です。
このことから、以下のように情報を読み取ることができます。
データの「型」、配列のキー、要素数、文字数、配列の中身などさまざまな情報を確認できます。
ここでは「型」について詳しく解説しませんが、参考として「型」には以下のようなものがあります。
〇 スカラー型
データ型(日本語) | データ型(英語) | 概要 |
論理型 | bool、boolean | trueかfalseのみ |
整数型 | int、integer | -1、0、1などの整数 |
浮動小数点型 | float、double | 1.23のような小数点数 |
文字列型 | string | ‘’(クォート)で囲まれた文字列 |
〇 複合型
データ型(日本語) | データ型(英語) | 概要 |
配列型 | array | 複数のデータの集合 |
オブジェクト型 | object | データと手続きの就業 |
〇 特殊型
データ型(日本語) | データ型(英語) | 概要 |
リソース型 | resource | 外部リソースの参照 |
ヌル型 | null | 値を持たない意味 |
例えば、以下のように記述すると、整数型のデータを確認することができます。
<?php
$data = 1000;
var_dump($data);
?>
int は整数型です。
var_dump()の整形
var_dump()の表示で、整形がうまく行われない場合は以下の記述をすると、整形した状態で表示されます。
<?php
echo '<pre>';
var_dump($array);
echo '</pre>';
?>
preタグで囲んだ中でvar_dump()を使用すると、コードの改行やインデントが行われた状態で表示することができます。
WordPressでvar_dumpを使ってデバッグ
WordPressでvar_dumpを使う場合、例えば以下のように使用できます。
カスタムタクソノミーで設定した変数$term_objectで取得した情報を確認しています。
<?php
$term_object = get_queried_object(); // タームオブジェクトを取得
$term_slug = $term_object->slug; // タームスラッグ
$args = array(
'post_type' => 'products',
'taxonomy' => 'products_tax',
'term' => $term_slug,
);
$tax_query = new WP_Query($args); ?>
<ul>
<?php
echo '<pre>';
var_dump($term_object);
echo '</pre>';
?>
<?php
if ($tax_query->have_posts()) :
while ($tax_query->have_posts()) :
$tax_query->the_post();
?>
<li>
<a href="<?php the_permalink(); ?>">
<h2><?php the_title(); ?></h2>
</a>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
get_queried_object()はタームオブジェクトを取得する関数です。取得した情報を変数$term_objectに格納し、それをvar_dump関数でどんな情報がとれているか確認しています。
例えば以下のような情報が確認できます。
- term_idが4
- nameが「商品カテゴリー」
- slugが「products_taxb」
- taxonomyが「products_tax」
意図した情報が取れているか、get_queried_objectのような関数でどんな情報が取得できるか、など確認したいときにvar_dump関数を使うと便利です。
うまく情報が取得できているのが確認できれば、例えば以下のようにname情報を表示することができます。
<li>
<a href="<?php the_permalink(); ?>">
<h2><?php the_title(); ?></h2>
<!-- name情報を表示 -->
<p><?php echo $term_object ->name; ?></p>
</a>
</li>
もし、意図した情報を表示できない場合は、関数などでうまく情報を取得できていない可能性があります。
例えばget_queried_object関数では「title」の情報を取得できないので、以下のように記述したとしても、画面には表示されません。
<p><?php echo $term_object ->title; ?></p>
このように取得した情報が分かれば、画面に表示されることもできますし、画面に表示されない場合はそもそも情報を取れていない可能性が高いです。
その場合は、var_dump関数を使用してどんな情報が取れているか確認する、という作業が必要になります。
まとめ
var_dumpについて解説しました。JavaScriptではconsole.logを使って開発・デバッグすることが多いことと思いますが、PHPではvar_dumpを使っていきましょう!