首页 > 解决方案 > 防止 var_dump() 返回值自动打印,回显

问题描述

<?php
if ($row['enable_register'] == 'enabled' AND var_dump($row['s_time'] >= new DateTime('now')))
{
    echo CheckRegistration($row['enable_register'], $row['attendance_no'], $row['volunteers_no'], $row['preformers_no'], $row['id']);
}
?>

当 if(condition) 为 false 时 var_dump() 返回 bool(false) 值并且它正在回显它,它不应该回显返回值。我只想检查返回值是真还是假

标签: phpweb-deployment

解决方案


为了能够检查checkRegistration函数的返回值,您应该正确使用 if 语句和条件。

1.首先,适当的使用var_dump将是: var_dump(CheckRegistration($row['enable_register'] , $row['attendance_no'],$row['volunteers_no'],$row['preformers_no'], $row['id'] )) 它用于转储信息并返回类型和值。因此,不适合将其用作 if 语句中的条件。

2.其次,格式化日期时间对象 您需要格式化日期时间对象以获得适合您的if条件的所需时间格式:例如; $obj = new DateTime(); $now = $obj->format('Y/m/d s:i:H')); 注意:在DateTime构造函数定义now中是初始化字符串的默认值:

public DateTime::__construct() ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] ) 因此$date = new DateTime()$date = new DateTime('now')是相同的

3.比较 当使用日期字符串时,您应该将它们转换为时间戳strtotime,以便比较它们的值。但是,DateTime对象与比较运算符一起使用。您可以直接比较两个 DateTime 对象:例如:`

$today = new DateTime('today');
 $yesterday = new DateTime('yesterday');
 var_dump($today > $yesterday);
 var_dump($today < $yesterday);
 var_dump($today == $yesterday);
 // Output
 bool(true)
 bool(false)
 bool(false)

` 参考资料:


推荐阅读