《PHP核心技术与最佳实践》错误和输出API

WBOY
Libérer: 2016-06-20 12:35:24
original
1124 Les gens l'ont consulté

PHP内核中不能简单地使用printf()函数打印数据,因为PHP有自己一套管理输出流的函数,如果调用printf()函数打印数据,很有可能出现意想不到的结果。下面了解PHP的输出API。

1) php_printf()函数:php_printf()跟C语言标准库的printf()函数很相似,唯一不同的就是php_printf()函数指向的是Zend的输出流,其原型如下:PHPAPI int php_printf(const char *format,...);第一个参数指定输出字符串的格式,格式参数跟printf()函数一样,例如:

php_printf("This is number:%d\n",10);

2) zend_error()函数:zend_error()函数用于输出一个错误信息,原型如下:ZEND_API void zend_error(int type,const *format,...);第一个参数指定错误信息的类型,第二个参数指定错误提醒消息。下面列出所有的错误信息类型:

E_ERROR:抛出一个错误,然后立即中止脚本的执行;

E_WARNING:抛出一个一般性的警告,脚本会继续执行;

E_NOTICE:抛出一个通知,脚本会继续执行,注意默认情况下php.ini会关闭显示这种错误;

E_CORE_ERROR:抛出一个PHP内核错误,通常情况下这种错误类型不应该被用户自己编写的模块引用;

E_COMPILE_ERROR:抛出一个编译器内部错误,通常情况下这种错误不应该被用户自己编写的模块引用;

E_COMPILE_WARNING:抛出一个编译器内部警告,同上也不应该被用户自己编写的模块引用;

一示例代码如下:zend_error(E_WARNING,"This is warning message.");

3) 向phpinfo()中输出信息:一般完成一个扩展之后,希望使用者了解到这个扩展的一些信息,最直接的方法就是用phpinfo()函数打印,这里就需要实现ZEND_MINFO()函数,,当调用phpinfo()函数时,ZEND_MINFO()函数会自动被调用。

如果指定ZEND_MINFO()函数,phpinfo()会自动打印一小节,小节的头部就是模块名,如果还想显示更多的信息就要自己指定。

PHP内核提供的以表格格式显示信息的接口一般需要三个步骤:

1)调用php_info_print_table_start函数制定表格(该函数没有参数)

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 of col1",...,"header str of coln");

void php_info_print_table_row(int cols,"str content of col1",...,"str content of coln");

这两个函数不同的地方就是它们打印的颜色不一样。

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal