从返回的字符串替换字符串

时间:2017-03-29 06:56:27

标签: php string wordpress

我有一个返回HTML表单的函数。 在附加到HTML的特定表单之前,我必须更换字符串。我已尝试进行替换,但是它返回表单而不执行替换。

以下是代码示例:

<?php
class test{
    function testing()
    {
        ?>
        <input type="hidden" value="<?php echo 'TEST_TAG' ?>">
        <?php
    }
}
add_action('wp_footer', str_replace('TEST_TAG', wp_create_nonce('submit_of_form_lead'), (new test)->testing()));
?>

1 个答案:

答案 0 :(得分:1)

您没有使用php返回表单代码,而是立即输出

?&gt;是php结束标记,你可以有效地说出我写完之后不再是php了。此外,php echo立即输出,并且不返回字符串“TEST_TAG”。你可以做些什么来解决它:

<?php
class test{
    function testing()
    {
        return '<input type="hidden" value="TEST_TAG">';
    }
}
add_action('wp_footer', str_replace('TEST_TAG', wp_create_nonce('submit_of_form_lead'), (new test)->testing()));
?>

然而,老实说这是一种奇怪的方法来处理更好的方法是在函数调用中添加一个参数并将其赋予您调用表单的位置。

<?php
class test{
    function testing($value)
    {
        return "<input type='hidden' value='$value'>";
    }
}
add_action('wp_footer', (new test)->testing(wp_create_nonce('submit_of_form_lead')));
?>

这应该给出相同的结果,而不必替换占位符。