-3

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;
}

如果我从第 1 行注释代码。4 到 7 并回显变量的值,$grid->mSqlArr['where']它正在打印输出 is_test_cancled='0' AND is_test_archive='0' 但是当我删除注释并运行代码时,出现空白屏幕,我无法理解这是如何发生的。我尝试调试,在此期间我收到以下错误 PHP Parse error: syntax error, unexpected T_VARIABLE in view_tests.php on line 218 Errors parsing view_tests.php

你能帮我解决这个错误吗?我没有得到价值后如何无法识别变量?提前致谢。

4

2 回答 2

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;

(注意变量.周围的额外s)$duration

于 2013-09-06T05:19:59.863 回答
0

您正在构建错误的字符串

$grid->mSqlArr['where'] = " tests.test_duration = "."'"$duration"'"." ".$duration_in_sec;

应该是

$grid->mSqlArr['where'] = " tests.test_duration = '$duration' "  . $duration_in_sec;

尽管我不知道您要构建的是什么。但是你需要.在你连接在一起的每个字符串之间有一个。另请注意,您可以在双引号字符串中嵌入变量,它们会展开。

于 2013-09-06T05:21:28.037 回答