在php中回显函数是不好的做法吗?

use*_*292 0 php

使用php中的函数回显一堆HTML并使用类似这样的东西是不好的做法:

function my_function() {
global $post;
$custom_fields = get_post_custom();
$some_field = $custom_fields ['some_field'][0];
?>

<div class="something <?php if ($some_field) { echo $special-clas;} ?>">
<div class="something-else">
/* bunch more of html code */
</div>
</div>
}
Run Code Online (Sandbox Code Playgroud)

然后在你想用它来回应它的页面中?

<html>
<body>
.....
....

<?php echo my_function(); ?>

....
Run Code Online (Sandbox Code Playgroud)

我不确定如何"接受"回声功能?

Mar*_*c B 6

考虑两个功能:

function does_return() {
   return 'foo';
}

function does_echo() {
   echo 'bar';
}

does_return();      // nothing displayed
echo does_return(); // 'foo' displayed

does_echo();        // 'bar' displayed
echo does_echo();   // 'bar' displayed
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,都可以执行输出,但它的发生方式有所不同.由于does_return()本身没有任何代码可以在其定义中执行输出,因此输出最多是调用代码,例如echo您执行的操作.

有了does_echo(),你如何调用函数(有或没有echo)并不重要,因为函数自己执行输出.你会得到的bar.

现在考虑一下:

function this_is_fun();
    echo 'foo';
    return 'bar';
}

this_is_fun();       // outputs 'foo'
echo this_is_fun();  // outputs 'foobar';
Run Code Online (Sandbox Code Playgroud)