【问题标题】:How to concatenate variable and string in following scenario in PHP?如何在PHP中的以下场景中连接变量和字符串?
【发布时间】:2014-06-21 10:36:00
【问题描述】:

我正在关注 PHP 代码:

<?php
$rebate_no = 2;
echo "<table id='blacklistgrid_$rebate_no'  class='table table-bordered table-hover table-striped blacklistgrid'>
        <tr id='reb$rebate_no_1'>
          <td>
            <div class='btn-group'>
              <select name='product_id_$rebate_no[1]' id='product_id_$rebate_no_1' class='form-control prod_list'>
                <option value='1'>Alabama</option>
                <option value='2'>Alaska</option>
                <option value='3'>Arizona</option>
                <option value='4'>Arkansas</option>
                <option value='5'>California</option>
              </select>
            </div>
          </td>
        </tr>
      </table>";
?>

在上面的代码中,我在以下几行中遇到了变量和字符串连接的问题:

<tr id='reb$rebate_no_1'>
<select name='product_id_$rebate_no[1]' id='product_id_$rebate_no_1' class='form-control prod_list'>

我尝试了以下技巧,但它对我不起作用。

<tr id='reb'.$rebate_no.'_1'>
<select name='product_id_$rebate_no[1]' id='product_id_'.$rebate_no.'_1' class='form-control prod_list'>

如果我签入 HTML 源代码,我会得到以下 HTML:

<tr id="reb" .2.'_1'="">
<select id="product_id_" class="form-control prod_list" .2.'_1'="" name="product_id_">

实际上我希望 HTML 采用以下所需格式:

<tr id='reb2_1'>
<select name='product_id_2[1]' id='product_id_2_1' class='form-control prod_list'>

如何做到这一点?提前致谢。

【问题讨论】:

    标签: php html concatenation string-concatenation


    【解决方案1】:

    字符串连接

    <?php
    $rebate_no = 2;
    echo "<table id='blacklistgrid_".$rebate_no."'  class='table table-bordered table-hover table-striped blacklistgrid'>
            <tr id='reb".$rebate_no_1."'>
              <td>
                <div class='btn-group'>
                  <select name='product_id_".$rebate_no[1]." id='product_id_".$rebate_no_1."' class='form-control prod_list'>
                    <option value='1'>Alabama</option>
                    <option value='2'>Alaska</option>
                    <option value='3'>Arizona</option>
                    <option value='4'>Arkansas</option>
                    <option value='5'>California</option>
                  </select>
                </div>
              </td>
            </tr>
          </table>";
    ?>
    

    如果你想使用 Zend 规范

    <?php
        $rebate_no = 2;
        echo "<table id='blacklistgrid_{$rebate_no}'  class='table table-bordered table-hover table-striped blacklistgrid'>
                <tr id='reb{$rebate_no_1}'>
                  <td>
                    <div class='btn-group'>
                      <select name='product_id_{$rebate_no[1]} id='product_id_{$rebate_no_1}' class='form-control prod_list'>
                        <option value='1'>Alabama</option>
                        <option value='2'>Alaska</option>
                        <option value='3'>Arizona</option>
                        <option value='4'>Arkansas</option>
                        <option value='5'>California</option>
                      </select>
                    </div>
                  </td>
                </tr>
              </table>";
        ?>
    

    【讨论】:

      【解决方案2】:

      你开始用双引号,所以你可以这样做:

      <tr id='reb".$rebate_no."_1'>
      

      或在变量周围使用花括号{}

      <tr id='reb{$rebate_no}_1'>
      

      两者都有效。

      【讨论】:

        【解决方案3】:

        试试这个:

           <tr id='re'".$rebate_no."_1'>
            <select name='product_id_$rebate_no[1]' id='product_id_".$rebate_no."_1' class='form-control prod_list'>
        

        当您连接字符串时,您需要使用双引号,因为您使用双引号开始字符串。

        【讨论】:

          【解决方案4】:

          问题在于$rebate_no[1]。您可以将其值存储到常规变量中,将值附加到字符串中,如下所示,或者将其括在大括号中,如{$rebate_no[1]}

          echo "<table id='blacklistgrid_$rebate_no'  class='table table-bordered table-hover table-striped blacklistgrid'>
                  <tr id='reb$rebate_no_1'>
                    <td>
                      <div class='btn-group'>
                        <select name='product_id_" . $rebate_no[1] . "' id='product_id_$rebate_no_1' class='form-control prod_list'>
                          <option value='1'>Alabama</option>
                          <option value='2'>Alaska</option>
                          <option value='3'>Arizona</option>
                          <option value='4'>Arkansas</option>
                          <option value='5'>California</option>
                        </select>
                      </div>
                    </td>
                  </tr>
                </table>";
          

          【讨论】:

          • 我认为他想要的是 name='product_id_" . $rebate_no."[1]' 而不是 name='product_id_" . $rebate_no[1] . "'
          【解决方案5】:

          你弄错了。

          而不是做

          <tr id='reb'.$rebate_no.'_1'>
          

          <tr id='reb".$rebate_no."_1'>
          

          【讨论】:

            【解决方案6】:

            有一个最简单的方法 使用 (" ") 双引号而不是 (' ') 不会使它变得复杂。

            <tr id="reb$rebate_no_1">
            <select name="product_id_$rebate_no[1]" id="product_id_$rebate_no_1" class='form-control prod_list'>
            

            而不是

            <tr id='reb$rebate_no_1'>
            <select name='product_id_$rebate_no[1]' id='product_id_$rebate_no_1' class='form-control prod_list'>
            

            参考:PHP: different quotes?

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-02-13
              • 2013-11-10
              • 1970-01-01
              • 2017-01-11
              • 1970-01-01
              • 2019-11-19
              相关资源
              最近更新 更多