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 つの関数の違いは、異なる色で印刷されることです。