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

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

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

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

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Q&A

4回答

7961閲覧

PHPのデバッグで var_dump が使えない場合とデバッグの仕方

coh46

総合スコア9

PHP

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

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

0グッド

0クリップ

投稿2019/06/22 02:52

エンジニア歴半年の超初心者です。
今、仕事でPHPプログラムの改修を行っています。

処理を追うときに、正しい値が渡ってきているか(どんな値が渡ってきているか)を確認するために、
これまで var_dump や echo を使って変数の中身を画面に出力していました。

今回、CSVファイルインポート時のバリデート処理をデバッグしたときに変数の値を追いたかったのですが、
var_dump 等では画面に出力されず困りました。

このように、画面に出ない処理の場合、
1.var_dump を出力する方法はありますか?(または変数の中身を出力する方法)
2.普通はどのようにデバッグを行いますか?

ご回答よろしくお願いいたします。

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

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

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

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

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

m.ts10806

2019/06/22 02:55

そのコードを最小構成でいいので提示してください。 出力できるところに置いてないからであって「使えない」というケースは通常ありえません
m.ts10806

2019/06/22 03:15

別ヘッダーを送信するダウンロード等、エクスポートの処理ならともかく、インポートであれば表示できないというケースが思い当たりません。
guest

回答4

0

1.var_dump を出力する方法はありますか?(または変数の中身を出力する方法)

画面に出ないならファイルなりなんなりに出せば?

2.普通はどのようにデバッグを行いますか?

どれくらい余力があるのかにもよりますが、当該モジュールのみを
動かせるくらいのテストプログラム作って動かすとか。
この辺は現場によってやり方も違うだろうし、先達がなんか
いいツールを用意してたりしないのかな?

投稿2019/06/22 04:10

takasima20

総合スコア7458

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

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

0

下記のように一度処理を止めて本当に出力されていないか確認してみてはいかがでしょうか?(
また、var_dumpが動いていないのか出力しようとしているものの問題かを確認するためにも文字列だけの出力も入れてみてもいいかもしれないですね。

php

1var_dump('test'); 2var_dump($hoge); 3die;

投稿2019/06/22 07:02

fumito_94

総合スコア679

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

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

0

2.普通はどのようにデバッグを行いますか?

標準phpだけでlogを確認したいという意味ならerror_logを使います
普通のデバッグという聞かれ方だと基準が環境や人に依存しすぎるので回答し辛い

1.var_dump を出力する方法はありますか?(または変数の中身を出力する方法)

print_rならerror_logに出力を渡すことができます。

が、

var_dump 等では画面に出力されず困りました

これがよく分かんないですね。余計な手を加えていないなら出力されると思うんですが、何かミスがあってvar_dumpの出力よりも前に止まってませんか?

投稿2019/06/22 06:23

hentaiman

総合スコア6389

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

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

0

使っているエディタにもよりますがphp stomeやvscodeを使っているのであればブレイクポイントを使うのはどうでしょうか?

以下の記事でvscodeを使ったphpでのステップ実行についてまとめてくれている人がいるので参考になるかと!(php stomeを使ったリンクもありました)
https://qiita.com/yKanazawa/items/21881b060215c01243d6

投稿2019/06/22 03:09

t_kusakabe74

総合スコア549

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問