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年に作られたものでその後更新されていないため、もうちょっと新しめの似たようなライブラリを探したいところ。
関連記事
-
-
FLASHから受信した画像をPHPで保存し、サムネイルも作る
■参考サイト ・FLASH http://www.ilovex.co.jp/bl ...
-
-
Composerで後から別のパッケージを追加する方法と削除する方法
Composerで何らかのパッケージをインストールし、後から別のパッケージを追加 ...
-
-
PHPで画像を分割し並べ替えて出力したものをJavaScriptで復元する方法
ある電子書籍サイトをブラウザの開発者ツールで見てみたところ、PHPでページ画像を ...
-
-
jQuery.uploadでリアルタイムプレビュー
やりたい事は、 ・<input type="file">で画像を選択 ...
-
-
PHPの配列でキーの最大値を取得
PHPの配列でキーの最大値を取得したかった。以下で対応する。 $test = a ...