PHP8系の環境でdBug.phpライブラリが使用できない場合の対応方法
先日メモしたdBug.phpをPHP8系の環境で試すと動作しなかった。ただエラーメッセージは表示されず、構文チェックツールなどでも特に引っかからなかった。調べてみるとPHP8系でClassのコンストラクタ名のルールが多少変わったようでそちらが原因みたい。以下に対応方法をメモ。
リファレンス
https://www.php.net/manual/ja/migration80.incompatible.php
動作しない原因
上記リファレンスの以下部分が該当するっぽい。
クラス名と同じ名前のメソッドは、コンストラクタと解釈されなくなりました。 __construct() メソッドを代わりに使って下さい。
具体的にはdBug.phpの69行目のコンストラクタが以下のようになっている点が原因と思われる。
function dBug($var,$forceType="",$bCollapsed=false) {
対応方法
dBug.phpを書き換える場合
コンストラクタ部分を以下の通り書き換える。
#変更前 function dBug($var,$forceType="",$bCollapsed=false) { #変更後 function __construct($var,$forceType="",$bCollapsed=false) {
そうすると以下の形で出力可能。
new dBug($array);
dBug.phpを書き換えない場合
以下の形で出力させる。
$dBug = new dBug(); $dBug->dBug($array);
所感
dBug.phpが2012年に作られたものでその後更新されていないため、もうちょっと新しめの似たようなライブラリを探したいところ。
関連記事
-
-
Codeigniter4で独自・外部ライブラリの作成と呼び出し方法
Codeigniter4で独自ライブラリを作成し、コントローラー側で呼び出したい ...
-
-
PHPで複数の変数に同じ値を代入する方法(多重代入 / 一括代入 / 同時代入)
PHPのソースコード上に「$a = $b = $c = 12;」みたいな見たこと ...
-
-
PHPで日時のフォーマットをISO 8601型とDateTime型を相互に変換する方法
他社のAPI等のレスポンスで日時部分が「YYYY-MM-DDTHH:II:SSZ ...
-
-
PHPで配列のキーの最大値を取得する方法
配列のキーに整数値が入っていて、その中から最大値を取得したいケースがあった。調べ ...
-
-
ファイルの更新日付取得とリネーム
やりたかった事は、画像ファイルの更新日時取得と リネーム。 ■参考サイト htt ...