PHP代码如下:
if($duration!='' && $duration_in_hrs!='') {
$duration_in_sec = $duration_in_hrs * 60 * 60;
//echo $grid->mSqlArr['where']; die;
if(empty($grid->mSqlArr['where']) && $grid->mSqlArr['where']=='')
$grid->mSqlArr['where'] = " tests.test_duration = "."'"$duration"'"." ".$duration_in_sec;
else
$grid->mSqlArr['where'] .= " AND tests.test_duration "."'"$duration"'"." ".$duration_in_sec;
}
如果我评论第no行的代码。 4到7并回显变量$grid->mSqlArr['where']
的值它打印输出is_test_cancled='0' AND is_test_archive='0'
但是当我删除注释并运行代码时出现空白屏幕,我无法知道这是怎么回事。我试图调试,在此期间我收到以下错误
PHP解析错误:语法错误,第218行的view_tests.php中出现意外的T_VARIABLE
解析view_tests.php的错误
你能帮我解决这个错误吗?我有没有得到价值如何变量无法识别?提前致谢。
答案 0 :(得分:1)
语法高亮是一个死的赠品。检查以下行(以及原始代码段中的下面两行):
$grid->mSqlArr['where'] = " tests.test_duration = "."'"$duration"'"." ".$duration_in_sec;
你有一个字符串 - " tests.test_duration = "."'"
,然后你有一个变量$duration
,然后是另一个字符串"'"." ".$duration_in_sec
。
如果你想将它们连接成一个字符串,你应该将$duration
添加到字符串中,例如。
$grid->mSqlArr['where'] = " tests.test_duration = "."'".$duration."'"." ".$duration_in_sec;
(请注意.
变量周围的额外$duration
个
答案 1 :(得分:0)
你正在构建错误的字符串
$grid->mSqlArr['where'] = " tests.test_duration = "."'"$duration"'"." ".$duration_in_sec;
应该是
$grid->mSqlArr['where'] = " tests.test_duration = '$duration' " . $duration_in_sec;
虽然我不知道你正在努力建立什么是什么。但是你需要在每个字符串之间加.
。另请注意,您可以将变量嵌入双引号字符串中,然后展开。