我正在尝试构建一个HTML字符串,如下所示:
$html= "<input name='".GROUP_CONFIG_MAX_CALL_RECORDING_TIME_INPUT."' value='".$MaxCallRecordingTimeSecs."' size='4' ".($bCallRecordingLicensed)?'':'disabled'.">";
但它只是给我一个解析错误(没有具体细节,只是这一行是问题)。
我尝试了各种引号和括号的定位,但我总是得到解析错误。这可能是我正在尝试的方式吗?
答案 0 :(得分:2)
$html= "<input name='".GROUP_CONFIG_MAX_CALL_RECORDING_TIME_INPUT."' value='".$MaxCallRecordingTimeSecs."' size='4' ".($bCallRecordingLicensed?'':'disabled').">";
像encodebiz所说,这应该与额外的括号一起使用。我会用sprintf来寻找更具可读性的版本:
$html = sprintf(
'<input name="%s" value="%s" size="4"%s>',
GROUP_CONFIG_MAX_CALL_RECORDING_TIME_INPUT,
$MaxCallRecordingTimeSecs,
( $bCallRecordingLicenced ? '' : ' disabled' )
);
答案 1 :(得分:0)
尝试
".(($bCallRecordingLicensed)?'':'disabled').">";
其他括号
答案 2 :(得分:0)
我认为是因为你更改了引号:
例如
$test = false;
$strings = "hello ".($test?"you":"")." this is a test";
echo $strings;
按预期工作。
我确实发现没有括号围绕测试,例如,我的测试只产生了“你”这个词而不是整个字符串 - 这很奇怪。
答案 3 :(得分:0)
尝试将整个三元包装在parens中,而不仅仅是开头的变量:
$html= "<input name='".GROUP_CONFIG_MAX_CALL_RECORDING_TIME_INPUT."' value='".$MaxCallRecordingTimeSecs."' size='4' ".($bCallRecordingLicensed?'':'disabled').">";