使用PHP三元运算符将数据传递给方法
我一直在处理一些自定义类,包括一个调试bug方法。使用常量调试变量使用PHP三元运算符将数据传递给方法,php,methods,ternary,Php,Methods,Ternary,我一直在处理一些自定义类,包括一个调试bug方法。使用常量调试变量 define('DEBUG', 3); 我设置要显示的调试级别。从FALSE(无)、1(基本)、2(中等)、3(高级)等开始 在整个代码中,我都调用了上述调试方法。经验: if(DEBUG == TRUE) $this->status("DB connection",NULL); 这可以压缩成三元运算符吗?比如: $this->debug($title, $response, $die) = (DEBUG
define('DEBUG', 3);
我设置要显示的调试级别。从FALSE(无)、1(基本)、2(中等)、3(高级)等开始
在整个代码中,我都调用了上述调试方法。经验:
if(DEBUG == TRUE)
$this->status("DB connection",NULL);
这可以压缩成三元运算符吗?比如:
$this->debug($title, $response, $die) = (DEBUG == TRUE) ? ("DB Connection", NULL) : (NULL) ;
我知道它有点长,但是把它全部放在一行等会使它更容易维护。为什么不把测试
if(DEBUG==随便什么)
放在$this->DEBUG
函数里面呢
然后,您的代码如下所示:
$this->debug("DB Connection", NULL);
以及您的调试功能:
function debug($title, $response, $die = FALSE)
{
if (DEBUG == whatever)
dosomething();
}
为什么不把测试
if(DEBUG==无论如何)
放在$this->DEBUG
函数中呢
然后,您的代码如下所示:
$this->debug("DB Connection", NULL);
以及您的调试功能:
function debug($title, $response, $die = FALSE)
{
if (DEBUG == whatever)
dosomething();
}
你应该反过来做。创建一个
debug
方法/函数,您可以使用调试级别调用该方法/函数,始终不带条件。在该方法中,确定是否满足该级别
$this->debug('DB connection', DEBUG_INFO);
public function debug($message, $level) {
if (DEBUG >= $level) {
echo $message;
}
}
你应该反过来做。创建一个
debug
方法/函数,您可以使用调试级别调用该方法/函数,始终不带条件。在该方法中,确定是否满足该级别
$this->debug('DB connection', DEBUG_INFO);
public function debug($message, $level) {
if (DEBUG >= $level) {
echo $message;
}
}
如果你想把所有的东西都放在一行,你可以用
DEBUG && $this->status("DB connection",NULL);
但是,与仅使用if语句相比,这可能会影响代码的可读性。如果您倾向于将其全部放在一行中,则可以使用
DEBUG && $this->status("DB connection",NULL);
但是,与只使用if语句相比,这可能会影响代码的可读性。我不知道这会起什么作用。检查
$this->debug()
中的标志不是更明智吗?@Pekka Damnit!我在方向盘上睡着了!我需要咖啡。我不知道这能做什么。检查$this->debug()
中的标志不是更明智吗?@Pekka Damnit!我在方向盘上睡着了!我需要咖啡。虽然调试方法比这个例子要复杂一点,但它正是我想要的。如果不使用IF/then,那么case select会是一个更好的选项吗?因为我有多个级别的调试?无论什么都可以使您的船浮起来。:)太棒了,这不是我想要的答案,但我用更少的代码完成了这项工作。谢谢。虽然调试方法比这个例子要复杂一点,但它正是我想要的。如果不使用IF/then,那么case select会是一个更好的选项吗?因为我有多个级别的调试?无论什么都可以使您的船浮起来。:)太棒了,这不是我想要的答案,但我用更少的代码完成了这项工作。谢谢