如何在echo中调用php函数?

时间:2019-01-02 20:17:08

标签: php

我的数据通常来自mysql,但这不是问题。我的问题是我希望能够在回声中调用几个函数。我什至不知道是否有可能。我对php几乎是新的,请提供任何帮助。

<?php
     echo"
        <div class='container'>
          <select name='science'>
         <?php science_facts(); ?>
          </select>
        </div>
    ";      
?>

<?php
    echo"
          <div class='container'>
            <select name='science'>
           science_facts();
           </select>
        </div>  
   ";   
?>

两者都不起作用。

2 个答案:

答案 0 :(得分:4)

您必须将字符串分解为静态和动态部分。有很多方法可以做到这一点,但是最常见的两种方法是使用多个echo语句:

echo "<div class='container'>";
echo "<select name='science'>";
echo science_facts(); // Note no quotes!
echo "</select>";
echo "</div>";

或使用.字符串连接运算符动态连接字符串:

echo "<div class='container'>" .
    "<select name='science'>" .
    science_facts() .
    "</select>" .
    "</div>";

或者,一行相同:

echo "<div class='container'><select name='science'>" . science_facts() . "</select></div>";

或明确启动/停止PHP执行:

...
?>
<div class='container'>
<select name='science'>
<?php echo science_facts(); ?>
</select>
</div>
<?php
...

(注意:这假设您的science_facts()函数返回其输出而不是回显它。)

答案 1 :(得分:0)

在我的例子中,将函数放入 echo 会导致在输入标签之前显示函数的结果(奇怪)。我的解决方案是结束回声功能而不是触发功能并继续回声。

不工作(在“输入”标签前显示函数结果):

echo '<input type="checkbox" class="custom-control-input" id="zabezpieczenie' . $idZabezpieczenia . '" name="zabezpieczenie' . $idZabezpieczenia . '" value="zabezpieczenie' . $idZabezpieczenia . '" onclick="dodaj_czynnosc(this.value, this.id)"'.checkChecked('zabezpieczenie' . $idZabezpieczenia).'>';

工作(在'input'标签内显示函数的结果):

echo '<input type="checkbox" class="custom-control-input" id="zabezpieczenie' . $idZabezpieczenia . '" name="zabezpieczenie' . $idZabezpieczenia . '" value="zabezpieczenie' . $idZabezpieczenia . '" onclick="dodaj_czynnosc(this.value, this.id)"';
checkChecked('zabezpieczenie' . $idZabezpieczenia); //displays checked
echo '>';