首页 文章

为什么我的功能没有输出任何东西?

提问于
浏览
-1

我只想学习一些代码 . 我这里有一些代码,这些代码重复了很多次

它可能是凌乱的代码,因为我不是专业人士 .

<td><?php if ($row["boption03"] >= 1) echo "
        <input 
        name='orderdetails[" . $row['prod_selectname'] . 03 . "]' 
        id='" . $row['prod_selectname'] . 03 . "' 
        placeholder='3mg' type='number' 
        class='liq03 form-control'"?> <?php if ($row["boption03"] == 2) echo "disabled" ?>
        <?php if ($row["boption03"] >= 1) echo "/>"?>
        </td>

我试图把它放在一个函数中(因为我觉得它更好更整洁)

这是我到目前为止所拥有的

function liquidBox($boptionStrength) {
if ($row["boption$boptionStrength"] >= 1) echo "
            <input 
            name='orderdetails[" . $row['prod_selectname'] . $boptionStrength . "]' 
            id='" . $row['prod_selectname'] . $boptionStrength . "' 
            placeholder='$boptionStrength' type='number' 
            class='liq$boptionStrength form-control'" . (($row["boption$boptionStrength"] == 2)?'disabled':"") . "/>";

}

并通过它来调用它

<td><?php liquidBox("00"); ?></td>

但它没有输出任何东西 .

有人可以指出我正确的方向 .

谢谢

如果我把var_dump($ boptionStrength)放在“if”之前然后我得到输出int(3)所以变量被传递给函数 - 由Cid建议

3 回答

  • 0

    试试这个:

    function liquidBox($row, $boptionStrength) {
        if ($row["boption0".$boptionStrength] == 2) {
            echo "<input name='orderdetails[" . $row['prod_selectname'] . $boptionStrength . "]' id='" . $row['prod_selectname'] . $boptionStrength . "' placeholder='$boptionStrength' type='number'   class='liq$boptionStrength form-control'" . " disabled />";
        } else {
            echo "<input name='orderdetails[" . $row['prod_selectname'] . $boptionStrength . "]' id='" . $row['prod_selectname'] . $boptionStrength . "' placeholder='$boptionStrength' type='number'   class='liq$boptionStrength form-control' />";
        }
    }
    
    <td><?php liquidBox($row, 1); ?></td>
    
  • 0

    感谢来自Cid(sprintf)和Rishat($ row,boptionStrength)的提示,我似乎已经设法了

    这是我的最终结果

    function liquidBox($row, $boptionStrength, $phtext) 
    {
    $boptionStrength = sprintf("%02d", $boptionStrength);
    if ($row["boption$boptionStrength"] >= 1) 
     /*var_dump($boptionStrength); */
    
    {echo "
        <input 
        name='orderdetails[" . $row['prod_selectname'] . $boptionStrength . "]' 
        id='" . $row['prod_selectname'] . $boptionStrength . "'
        placeholder='$phtext' 
        type='number' 
        class='liq$boptionStrength form-control'" . (($row["boption$boptionStrength"] == 2)?'disabled':"") . "/>";}
    
    }
    

    我正在使用以下内容来调用该函数

    <td><?php liquidBox($row, 00, '0mg'); ?></td>
            <td><?php liquidBox($row, 03, '3mg'); ?></td>
            <td><?php liquidBox($row, 06, '6mg'); ?></td>
            <td><?php liquidBox($row, 12, '12mg'); ?></td>
            <td><?php liquidBox($row, 18, '18mg'); ?></td>
            <td><?php liquidBox($row, 20, '20mg'); ?></td>
    

    谢谢你的帮助

  • 0

    您可以使用sprintf()将数值格式化为0前缀字符串 .

    在你的情况下, sprintf("%02d", $boptionStrength); . % 表示会有转化 . 0 表示转换将使用此字符进行填充 . 2 表示最多有2个填充字符 . d 是十进制的 .

    echo sprintf("%02d", 0);    //outputs 00
    echo sprintf("%02d", null); //outputs 00
    echo sprintf("%02d", 3);    //outputs 03
    echo sprintf("%02d", 42);   //outputs 42
    echo sprintf("%02d", 123);  //outputs 123
    

    在示例中,使用您的函数:

    function liquidBox($boptionStrength)
    {
        $boptionStrength = sprintf("%02d", $boptionStrength);
        if ($row["boption$boptionStrength"] >= 1)
        {
            //your code
        }
    }
    

相关问题