1

我正在尝试构建一个 HTML 字符串,如下所示:

$html= "<input name='".GROUP_CONFIG_MAX_CALL_RECORDING_TIME_INPUT."' value='".$MaxCallRecordingTimeSecs."' size='4' ".($bCallRecordingLicensed)?'':'disabled'.">";

但它只是给了我一个解析错误(没有具体细节,只是这条线是问题所在)。

我尝试了各种引号和括号的定位,但我总是遇到解析错误。这可能是我正在尝试的方式吗?

4

4 回答 4

3
$html= "<input name='".GROUP_CONFIG_MAX_CALL_RECORDING_TIME_INPUT."' value='".$MaxCallRecordingTimeSecs."' size='4' ".($bCallRecordingLicensed?'':'disabled').">";

就像codingbiz所说,这应该与额外的括号一起使用。不过,我会选择 sprintf 的更具可读性的版本:

$html = sprintf( 
   '<input name="%s" value="%s" size="4"%s>',
   GROUP_CONFIG_MAX_CALL_RECORDING_TIME_INPUT,
   $MaxCallRecordingTimeSecs,
   ( $bCallRecordingLicenced ? '' : ' disabled' )
);
于 2012-10-08T14:28:59.407 回答
1

尝试

".(($bCallRecordingLicensed)?'':'disabled').">";

附加括号

于 2012-10-08T14:25:15.483 回答
1

尝试将整个三元组包裹在括号中,而不仅仅是开头的变量:

$html= "<input name='".GROUP_CONFIG_MAX_CALL_RECORDING_TIME_INPUT."' value='".$MaxCallRecordingTimeSecs."' size='4' ".($bCallRecordingLicensed?'':'disabled').">";
于 2012-10-08T14:31:51.367 回答
-1

我认为是因为您更改了引号:

例如

$test = false;
$strings = "hello ".($test?"you":"")." this is a test";
echo $strings;

按您的预期工作。

例如,我确实发现测试中没有括号,我的测试只产生了“你”这个词……而不是整个字符串——这很奇怪。

于 2012-10-08T14:28:36.143 回答