【问题标题】:How to use echo inside echo如何在回声中使用回声
【发布时间】:2013-09-16 09:59:36
【问题描述】:

我有这个代码:

echo '<form method="post" class="product" action="index.php" id="addtocartproduct<?php echo $products->virtuemart_product_id ?>">';

我必须在 echo 中使用 echo,而且我必须永远不要在这一行中使用 php。 我怎么能编辑这一行,使它像:

echo '<form method="post" class="product" action="index.php" id="addtocartproduct echo $products->virtuemart_product_id ">';

编辑: 感谢每一位非常有用的帮助。 现在我有另一个问题。我可以用这条线做什么:

echo'<input type="hidden" class="pname" value="<?php echo $product->product_name ?>">';

【问题讨论】:

  • echo "&lt;form method='post' class='product' action=index.php id='addtocartproduct $products-&gt;virtuemart_product_id'&gt;"; 变量被插在双引号中,你不需要另一个回显。但更好的解决方案是不回显整个 HTML。即://.. some PHP there ... then closing the tag; ?&gt; &lt;form action="index.php .... id="addtocartproduct &lt;?=$products-&gt;virtuemart_product_id;?&gt;"&gt;

标签: php


【解决方案1】:
echo '<form method="post" class="product" action="index.php" id="addtocartproduct '. $products->virtuemart_product_id.' ">';

【讨论】:

  • echo 可以接受任意数量的“参数”,因此您可以在该代码中使用逗号而不是点。优点是 dot 在回显之前执行字符串连接,这是不必要的步骤。如果您在所有代码中都遵循这种做法,您将节省几毫秒。
【解决方案2】:

您不需要在 echo 内部回显,您只需要正确的连接即可。

echo '<form method="post" class="product" action="index.php" id="addtocartproduct
          '.$products->virtuemart_product_id.' ">';

<form method="post" class="product" action="index.php" 
    id="addtocartproduct<?php echo $products->virtuemart_product_id; ?>">

如果php标签在打开之前关闭它,然后尝试上面的解决方案。

?>
<form method="post" class="product" action="index.php" 
    id="addtocartproduct<?php echo $products->virtuemart_product_id; ?>">

【讨论】:

    【解决方案3】:
    echo '<form method="post" class="product" action="index.php" id="addtocartproduct' . $products->virtuemart_product_id . '">';?>
    

    【讨论】:

      【解决方案4】:

      Variables 在 PHP 中在双引号内展开(插值)。所以你不需要在你的echo 语句中使用echo。这是不正确的——无论是语法上还是逻辑上。

      以下应该有效:

      echo "<form method='post' class='product' action='index.php' 
      id='addtocartproduct.{$products->virtuemart_product_id}'";
      

      或者只是使用字符串连接,像这样:

      echo '<form method="post" class="product" action="index.php" 
      id="addtocartproduct' . $products->virtuemart_product_id . '">';
      

      所有这些都做同样的事情,但我建议使用第一种方法,因为它更干净。

      【讨论】:

        【解决方案5】:

        您不必在另一个内部使用 echo,您可以执行以下操作之一:

        <?php 
        
        if (somethng) {
        ?>
        
        <some tags you need in plain html> <?php echo "something you need from php"; ?> </some tags you need in plain html>
        
        
        <?php
        }else{
        ?>
        <some more tags you need in plain html> <?php echo "something else you need from php"; ?> </some more tags you need in plain html>
        
        <?php 
        }
        ?>
        

        或者你可以使用连接:

        $varsecondsentence = "second sentence";
        
        echo "this is the fisrt sentence, " . $varsecondsentence
        

        这将回显:this is the fisrt sentence, second sentence

        【讨论】:

          【解决方案6】:

          concat var 和 string 应该可以工作,然后你只需要一个 echo

           echo '<form method="post" class="product" action="index.php" id="addtocartproduct' + $products->virtuemart_product_id+' ">';
          

          查看这些页面以获取更多文档 http://php.net/manual/en/language.operators.string.php

          http://be1.php.net/manual/en/function.echo.php

          【讨论】:

          • 这不是正确的 PHP 连接。
          • 谢谢大家。现在这个呢:echo'';
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-19
          • 1970-01-01
          • 2016-06-22
          • 1970-01-01
          相关资源
          最近更新 更多