首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP语法,用于在echo或print中使用echo或pint

PHP语法,用于在echo或print中使用echo或pint
EN

Stack Overflow用户
提问于 2014-11-26 20:30:08
回答 3查看 124关注 0票数 0

我正在使用服务器编写我的许多页面的html,以处理一些分页。我在注释insert下面的一行中有一个语法错误,如下所示。我猜是因为我想把回声放在回声里?我在这里已经尝试过很多事情了,但是找不到我做错了什么。任何帮助都非常感谢!

代码语言:javascript
复制
<?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; . '/> ' 
          }
     }

?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-26 20:33:25

如果回声是语言结构,因此不能在字符串中使用。您必须更改逻辑流才能修复这个问题。

最简单的解决办法就是只用一堆分号。

这是不允许的:

代码语言:javascript
复制
echo 'abc' . if( $a == 1 ) { echo '3'; };

但是这很好,因为它把每件事都分成了几个步骤:

代码语言:javascript
复制
echo 'abc';
if( $a == 1 ) { echo '3'; }
票数 1
EN

Stack Overflow用户

发布于 2014-11-26 20:38:06

试着做这样的事情:

代码语言:javascript
复制
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:"".'/>';

使用?运算符,您可以检查一个条件,如果它等于什么,就回显出来;如果没有,则什么也不做。

票数 1
EN

Stack Overflow用户

发布于 2014-11-26 20:34:29

不能连接整个if语句。它不能转换为字符串。

不过,您可以使用三元算子将其更改为表达式:

代码语言:javascript
复制
echo 'first part of your string ' . ($transaction == '0'?'$chkvalue':'') . ' rest of your string';

更好的(我认为),您可以将HTML放在PHP标记之外。您可以再次短暂地打开PHP标记来执行和if语句,以有条件地回显一个值,或者您可以使用短的<?= XYZ ?>标记,它是<?php echo XYZ ?>的缩写。

这种工作方式在处理更大的HTML块时非常方便,因为大多数语法高亮符实际上都会突出显示HTML,您不需要转义任何内容。如果您在前面“准备”变量并使用简短的<?=标记插入它们,您的HTML看起来就像一个干净的模板样的代码,其中只有这些变量。

代码语言:javascript
复制
<?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 */ ?>/>
<?}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27158309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档