ホームページ  >  記事  >  バックエンド開発  >  「PHP コア テクノロジーとベスト プラクティス」エラーと出力 API

「PHP コア テクノロジーとベスト プラクティス」エラーと出力 API

WBOY
WBOYオリジナル
2016-06-20 12:35:241123ブラウズ

PHP には、printf() 関数を呼び出して出力ストリームを管理するための独自の関数セットがあるため、単純に printf() 関数を使用して PHP カーネル内のデータを出力することはできません。データを印刷する機能を使用すると、予期しない結果が発生する可能性が非常に高くなります。 PHP の出力 API について学びましょう。

1) php_printf() 関数: php_printf() 関数は C 言語標準ライブラリの printf() 関数に非常に似ていますが、唯一の違いは、php_printf() 関数が Zend の出力ストリームをポイントしていることです。 PHPAPI int php_printf(const char *format,...); 最初のパラメータは、printf() 関数と同じです。例:

php_printf("This isnumber:%dn ",10);

2) zend_error() 関数: zend_error() 関数はエラー メッセージを出力するために使用されます。 プロトタイプは次のとおりです。 ZEND_API void zend_error(int type, const *format,. ..); 最初のパラメータはエラー メッセージのタイプを指定し、2 番目のパラメータはエラー リマインダ メッセージを指定します。すべてのエラー メッセージの種類を以下に示します。

E_ERROR: エラーをスローし、スクリプトの実行を直ちに終了します。

E_WARNING: 一般的な警告をスローし、スクリプトは実行を続行します。 ;

E_NOTICE: 通知をスローすると、スクリプトは実行を継続します。php.ini はデフォルトでこのエラーの表示をオフにすることに注意してください。

E_CORE_ERROR: PHP カーネル エラーをスローします。エラー タイプはユーザーが作成したモジュールでは参照できません。

E_COMPILE_ERROR: 通常、このエラーはユーザーが作成したモジュールでは参照できません。内部コンパイラ警告。ユーザーが作成したモジュールによって参照されるべきではありません。

サンプル コードは次のとおりです: zend_error(E_WARNING, "これは警告メッセージです。");

3) phpinfo() への情報の出力: 通常、拡張機能の完成後、ユーザーが拡張機能に関する情報を知ることができると思います。最も直接的な方法は、phpinfo() 関数を使用して出力することです。ここで実装する必要があります。 ZEND_MINFO() 関数 phpinfo() 関数が呼び出されると、ZEND_MINFO() 関数が自動的に呼び出されます。

ZEND_MINFO() 関数を指定すると、phpinfo() はセクションの先頭にモジュール名を表示します。詳細を表示したい場合は、自分で指定する必要があります。

表形式で情報を表示するために PHP カーネルによって提供されるインターフェースには、通常 3 つの手順が必要です。

1) php_info_print_table_start 関数を呼び出して表を作成します (この関数にはパラメーターがありません)

2) 2 つの関数 php_info_print_table_handler と php_info_print_table_row を呼び出して、テーブルの特定の行と列の情報を出力します

2) php_info_print_table_end 関数を呼び出して終了します (この関数にはパラメータがありません)

php_info_print_table_header() で必要なパラメータは、ニーズに応じて変更されます:

void php_info_print_table(int cols,"header str ofcol1",...,"header str ofcoln");

void php_info_print_table_row(int cols,"col1 の str 内容" ,...,"coln の str 内容");

これら 2 つの関数の違いは、異なる色で印刷されることです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。