脚本宝典收集整理的这篇文章主要介绍了php – 简化调试,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
$myVAR = 'x'; debug($myvar); // outputs the following // myvar value is x
对此有一个神奇的常数吗?
如果没有,请推荐可以简化调试的替代方法.
debug('myvar',$myvar);
但我的目标是完全避免这样做.
是的,有,但你需要传递名称:
function debug($var_name) { PRintf('%s value is %s',$var_name,var_export($GLOBALS[$var_name],true)); }
或者,如果您只想要没有可解析格式的值:
function debug($var_name) { printf('%s value is %s',$GLOBALS[$var_name]); }
注意:这仅适用于全局范围内的变量.要对本地范围执行相同操作,您可能需要使用get_defined_vars()的解决方案,如下所示:
printf('%s value is %s',get_defined_vars()[$var_name]);
这不能简单地包含在debug()函数中.这是因为get_defined_vars()返回表示调用get_defined_vars()的范围内的变量的数组,并且我们不需要定义debug()的范围,不是吗?
统一解决方案可以使用全局范围作为默认值,但也接受一些表示本地范围的数组,因此定义可以是:
function debug($var_name,$scoPE_vars=null) { if ($scope_vars === null) { $scope_vars = $GLOBALS; }; printf('%s value is %s',var_export($scope_vars[$var_name],true)); }
然后你可以在全局范围内调用它:
debug('myvar');
或者像在本地范围内那样,传递本地范围数组:
debug('myvar',get_defined_vars());
工作实例
有关工作示例,请参阅此演示:http://ideone.com/NOtn6
有帮助吗?
以上是脚本宝典为你收集整理的php – 简化调试全部内容,希望文章能够帮你解决php – 简化调试所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。