質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

341閲覧

ファイルや行を含めてエラーを出力したい

origa3

総合スコア22

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2023/05/17 23:34

編集2023/05/17 23:37

実現したいこと

PHPで詳細なエラーを把握したいです。
該当のソースコードの実行に際し、次のようにファイルや行を含めて出力できないでしょうか?

Fatal error: Class 'MyClass' not found in /path/to/index.php on line 3

前提

外部ライブラリなどの利用はせずに実現したいです。

発生している問題・エラーメッセージ

こちらがブラウザに表示されるだけで、なかなか困ります。

Class "MyClass" not found

該当のソースコード

PHP

1<?php 2$instance = new MyClass(); 3var_export($instance->find(1));

試したこと

考えられるエラー系の呪文を3つ唱えてみましたが、効果なしでした。

PHP

1<?php 2// エラー系の呪文を3つ唱えてみました 3ini_set('display_errors', 1); 4ini_set('display_startup_errors', 1); 5error_reporting(E_ALL); 6 7$instance = new MyClass(); 8var_export($instance->find(1));

補足情報(FW/ツールのバージョンなど)

PHP 8.1.9 です。

追加で試したこと

尚、以下のソースコードで試しましたところ、十分な情報を持つエラーメッセージでした。上記のケースでもこうしたいです。(逆になぜこうならないのか、不思議でなりません。)

PHP

1<?php 2$undefined = $undefined;
Warning: Undefined variable $undefined in /path/to/index.php on line 2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

なにかフレームワークを導入していますか?デバッガが処理を持っていっているのでは?
指定したクラスが存在しない場合は致命的なエラーになるので例外(Exception )では
受けれませんのThrowableで受け取ってください

PHP

1try{ 2 $instance = new MyClass(); 3}catch(Throwable $t){ 4 echo $t->getMessage() ,' in ', $t->getFile(),' on line ', $t->getLine(); 5}catch(Exception $e){ 6 echo $t->getMessage(); 7}

投稿2023/05/18 01:03

yambejp

総合スコア114784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

origa3

2023/05/18 01:13

大変申し訳ございません。自らこのように書いており、Throwable に対してのみファイルと行の記述を失念していたせいでした。 ``` }catch(Throwable $t){ echo $t->getMessage(); } ``` Throwable のご指摘のおかげで気づくことができました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問