Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】__debugInfoメソッドの使い方

__debugInfoメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

__debugInfoメソッドは、RecursiveDirectoryIteratorクラスのオブジェクトが持つデバッグ情報をカスタマイズするために実行されるメソッドです。PHPにおいて、プログラムが期待通りに動作しない場合に、変数の内容などを確認する「デバッグ」という作業が不可欠です。このメソッドは、var_dump()print_r()といったデバッグ用の関数を使ってRecursiveDirectoryIteratorオブジェクトの内容を表示しようとした際に、自動的に呼び出されます。

通常、これらのデバッグ関数はオブジェクトの内部に保持されている様々なプロパティをそのまま表示します。しかし、RecursiveDirectoryIteratorのような複雑なオブジェクトの場合、すべての内部情報を詳細に表示しても、開発者にとって必要な情報が埋もれてしまい、かえって分かりにくくなることがあります。

__debugInfoメソッドは、開発者がオブジェクトから得たいデバッグ情報を配列として返すことで、表示される内容を制御します。例えば、現在のイテレータが指しているパスや、適用されているオプションなど、デバッグ時に本当に役立つ情報だけを抽出して提示することができます。これにより、デバッグ時の出力が整理され、必要な情報を素早く把握できるようになり、プログラムの問題点を効率的に特定する手助けとなります。この機能は、特にPHP 8以降で、より分かりやすいデバッグ体験を提供するために利用されます。

構文(syntax)

1<?php
2
3class MyDebuggableDirectoryIterator extends RecursiveDirectoryIterator
4{
5    public function __debugInfo(): array
6    {
7        return [
8            'path' => $this->getPath(),
9            'currentFile' => $this->getFilename(),
10            'isDirectory' => $this->isDir(),
11        ];
12    }
13}

引数(parameters)

引数なし

引数はありません

戻り値(return)

array

このメソッドは、デバッグ時にイテレータの状態を表す配列を返します。

【PHP8.x】__debugInfoメソッドの使い方 | いっしー@Webエンジニア