我正在使用服务器编写我的许多页面的html,以处理一些分页。我在注释insert下面的一行中有一个语法错误,如下所示。我猜是因为我想把回声放在回声里?我在这里已经尝试过很多事情了,但是找不到我做错了什么。任何帮助都非常感谢!
<?php
PDO STUFF HERE. . .
if() {
foreach() {
echo ' <input name="flyer" type="file" id="'.$row['ad_link'].'" tabindex="9" /></td>
//following line showing syntax error in my text editor
<input name="transaction" type="radio" tabindex="11" value="0"' . if($transaction == '0') echo '$chkvalue'; . '/><label for="listings">Listings</label>
//following line showing syntax error in my text editor
<input style="margin-left:20px;" name="transaction" type="radio" tabindex="12" value="1"' . if($transaction == '1') echo $chkvalue; . '/> '
}
}
?>发布于 2014-11-26 20:33:25
如果和回声是语言结构,因此不能在字符串中使用。您必须更改逻辑流才能修复这个问题。
最简单的解决办法就是只用一堆分号。
这是不允许的:
echo 'abc' . if( $a == 1 ) { echo '3'; };但是这很好,因为它把每件事都分成了几个步骤:
echo 'abc';
if( $a == 1 ) { echo '3'; }发布于 2014-11-26 20:38:06
试着做这样的事情:
echo '<input name="flyer" type="file" id="'.$row['ad_link'].'" tabindex="9" /></td>
<input name="transaction" type="radio" tabindex="11" value="0"'.($transaction == '0') ? $chkvalue:"".'/><label for="listings">Listings</label>
<input style="margin-left:20px;" name="transaction" type="radio" tabindex="12" value="1"' .($transaction == '1') ? $chkvalue:"".'/>';使用?运算符,您可以检查一个条件,如果它等于什么,就回显出来;如果没有,则什么也不做。
发布于 2014-11-26 20:34:29
不能连接整个if语句。它不能转换为字符串。
不过,您可以使用三元算子将其更改为表达式:
echo 'first part of your string ' . ($transaction == '0'?'$chkvalue':'') . ' rest of your string';更好的(我认为),您可以将HTML放在PHP标记之外。您可以再次短暂地打开PHP标记来执行和if语句,以有条件地回显一个值,或者您可以使用短的<?= XYZ ?>标记,它是<?php echo XYZ ?>的缩写。
这种工作方式在处理更大的HTML块时非常方便,因为大多数语法高亮符实际上都会突出显示HTML,您不需要转义任何内容。如果您在前面“准备”变量并使用简短的<?=标记插入它们,您的HTML看起来就像一个干净的模板样的代码,其中只有这些变量。
<?php
foreach( ... )
{?>
<input name="flyer" type="file" id="<?=$row['ad_link']?>" tabindex="9" /></td>
<input name="transaction" type="radio" tabindex="11"
value="0" <? if($transaction == '0') echo $chkvalue; /* Actual statement */ ?>/>
<label for="listings">Listings</label>
<input style="margin-left:20px;" name="transaction" type="radio" tabindex="12"
value="1" <?= ($transaction == '1'? $chkvalue : '') /* Just output an expression */ ?>/>
<?}https://stackoverflow.com/questions/27158309
复制相似问题