今天实在空的发慌,没事写点插件编写经验,供大家探讨!
以前学VB有个错误调试的函数,当语句不规范或发生错误时可以自动提示检测。
php玩的不好,不是手误就是定义变量不标准,经常出现错误提示。
为了解决问题经常要查找错误代码,想了一个笨办法。那就是所见即所得。
利用DZ的showmessage()和cpmsg()自定义函数查找错误。
当发生变量定义丢失的情况下,可以使用这个方法检索。
例如:变量丢失错误
@include DISCUZ_ROOT.'./forumdata/cache/plugin_home.php';
我们有个插件变量是$_DPLUGIN['home']['vars']['cid']=array(1,2,3,4,5,6);
- if($_DPLUGIN['home']['vars']['cid']){
- $pids = implode(',', $_DPLUGIN['home']['var'][cid]);
- }
复制代码
当然这个变量数组是存在的,但是细微的错误你不能发现,系统缺提示报错!
我们可以这样判断
- if($_DPLUGIN['home']['vars']['cid']){
- $pids = implode(',', $_DPLUGIN['home']['var'][cid]);
- showmessage($pids);
- }
复制代码
当然你说看到的系统信息是空白,那么下一步
- if($_DPLUGIN['home']['vars']['cid']){
- $pids = implode(',', $_DPLUGIN['home']['var'][cid]);
- showmessage($_DPLUGIN[home][var][cid]);
- }
复制代码
当你发现这个插件变量也是空白时,完全可以找到错误的来源。原来少了s
虽然这个例子十分简单,但是提示信息检查可以测试真假、数组、加上转义函数可以看到html的生成代码等等,我也试过检查sql语句的错误
呵呵,很多时候程序出错,页面根本不报警,而是直接空白一片,或许你就少了一个\或者是;也许是函数缺少必定的元素。这个方法都能检索出来!对于数据库调用出来的变量更能显示无疑!
或许这个对你有帮助,也许还有更好的办法! |