サーチ…


ダンプ変数

var_dump関数は、デバッグのために変数(型と値)の内容をダンプできます。

例:

$array = [3.7, "string", 10, ["hello" => "world"], false, new DateTime()];
var_dump($array);

出力:

array(6) {
  [0]=>
  float(3.7)
  [1]=>
  string(6) "string"
  [2]=>
  int(10)
  [3]=>
  array(1) {
    ["hello"]=>
    string(5) "world"
  }
  [4]=>
  bool(false)
  [5]=>
  object(DateTime)#1 (3) {
    ["date"]=>
    string(26) "2016-07-24 13:51:07.000000"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(13) "Europe/Berlin"
  }
}

エラーの表示

PHPでページにランタイムエラーが表示されるようにするには、 php.iniまたはini_set関数のどちらかでdisplay_errorsを有効にする必要があります。

ビット単位の演算子を使用して結合されたE_*定数を受け入れるerror_reporting (またはini)関数を使用して、表示するエラーを選択できます。

PHPは、 html_errors設定に応じて、テキストまたはHTML形式でエラーを表示できます。

例:

ini_set("display_errors", true);
ini_set("html_errors", false); // Display errors in plain text
error_reporting(E_ALL & ~E_USER_NOTICE); // Display everything except E_USER_NOTICE

trigger_error("Pointless error"); // E_USER_NOTICE
echo $nonexistentVariable; // E_NOTICE
nonexistentFunction(); // E_ERROR

プレーンテキスト出力: (HTML形式は実装によって異なります)

Notice: Undefined variable: nonexistentVariable in /path/to/file.php on line 7

Fatal error: Uncaught Error: Call to undefined function nonexistentFunction() in /path/to/file.php:8
Stack trace:
#0 {main}
  thrown in /path/to/file.php on line 8

注記: php.iniでエラー報告を無効にして実行時に有効にすると、実行時設定が適用される前にエラーが発生するため、解析エラーなどのエラーが表示されません。

error_reportingを処理する一般的な方法は、開発中にE_ALL定数をE_ALLて完全に有効にし、スクリプトの内部を隠すために、プロダクションステージでdisplay_errorsでそれを公開することを無効にすることです。

phpinfo()

警告

phpinfoは開発環境でのみ使用する必要があります。 phpinfoを含むコードを実稼働環境にリリースしない

前書き

これは、特にバグを追跡する際に、作業しているPHP環境(OS、設定、バージョン、パス、モジュール)を理解するのに便利なツールになると言いました。それは単純な組み込み関数です:

phpinfo();

それには、出力をカスタマイズできるようにする1つのパラメータ$whatがあります。デフォルトはINFO_ALL 、すべての情報を表示します。開発中にPHPの現在の状態を表示するために一般的に使用されます。

INFO_*定数をビット演算子と組み合わせて渡すと、カスタマイズされたリストが表示されます。

あなたはきれいにフォーマットされた詳細な外観のためにブラウザでそれを実行することができます。それはまたにあなたはパイプにそれをすることができますPHP CLIで働くless簡単にビューのために。

phpinfo(INFO_CONFIGURATION | INFO_ENVIRONMENT | INFO_VARIABLES);

これにより、PHPディレクティブ( ini_get )、環境( $_ENV )、および事前定義された変数のリストが表示されます。

Xdebug

Xdebugは、デバッグとプロファイリング機能を提供するPHP拡張モジュールです。
これはDBGpデバッグプロトコルを使用します。

このツールにはいくつかの素晴らしい機能があります:

  • エラー時にトレースをスタックする
  • 最大ネストレベル保護と時間トラッキング
  • 変数を表示するための標準var_dump()関数の便利な置き換え
  • パラメータと戻り値を含むすべての関数呼び出しを異なる形式のファイルに記録することができます
  • コードカバレッジ分析
  • プロファイリング情報
  • リモートデバッグ(PHPスクリプトの実行とやりとりするデバッガクライアント用のインターフェイスを提供)

あなたが見ることができるように、この拡張は開発環境に完全に適しています。特にリモートデバッグ機能は、多数のvar_dumpなしでPHPコードをデバッグし、 C++Java言語のような通常のデバッグプロセスを使用するのに役立ちます。

通常、この拡張モジュールのインストールは非常に簡単です。

pecl install xdebug # install from pecl/pear

そしてphp.iniにそれを有効にしてください:

zend_extension="/usr/local/php/modules/xdebug.so"

より複雑な場合は、この手順を参照してください

このツールを使用するときは、次のことを覚えておいてください。
XDebugは本番環境には適していません

phpversion()

前書き

さまざまなライブラリや関連する要件を扱う際には、現在のPHPパーサーのバージョンやそのパッケージのバージョンを知る必要があることがよくあります。

この関数は、拡張名の形式で単一のオプションのパラメータphpversion('extension')ます。問題の拡張がインストールされている場合、関数はバージョン値を含む文字列を返します。ただし、拡張機能がインストールされていないFALSEFALSEが返されFALSE 。拡張名が指定されていない場合、関数はPHPパーサ自体のバージョンを返します。

print "Current PHP version: " . phpversion();
// Current PHP version: 7.0.8

print "Current cURL version: " . phpversion( 'curl' );
// Current cURL version: 7.0.8
// or
// false, no printed output if package is missing

エラー報告(両方を使用)

// this sets the configuration option for your environment
ini_set('display_errors', '1');

//-1 will allow all errors to be reported
error_reporting(-1);


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow