首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从php函数返回html的最好方法?

从php函数返回html的最好方法?
EN

Stack Overflow用户
提问于 2012-08-07 16:45:46
回答 7查看 16.1K关注 0票数 5

所以我之前问了一个类似的问题,现在我只是更困惑,所以我会用不同的方式来问它……

我正在尝试做的是抽象我的php,并将在我的验证器中用作错误消息的html片段放入函数中,这些函数将html返回到页面中需要它们的位置。

我现在有的是:

代码语言:javascript
复制
<section>
<?php 
if($errMsg)
{
    errMsg();
}
?>
</section>

<?php
function errMsg()
{
       ?>
       <section>
           <p>O crap!  There was an error</p>
       </section>
       <?php
}
?>

但在我之前提到的问题中,有人告诉我这样做是一个“肮脏的黑客”,在这样的情况下使用return更好。但是要使用return,我需要将所有返回的html赋值给一个var,为此,我需要将html放入字符串中。我宁愿避免在字符串中放置两行以上的html,因为这样做需要大量的引号。

所以我想我要么使用heredoc语法,要么使用ob_start/ob_get_clean函数。我想知道的是。

1我甚至需要像这样抽象我的代码吗?

2如果是这样,哪种方法是最佳实践方法?和/或

3我是否应该放弃web开发,回到披萨外卖?:-\

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-08-07 16:51:02

我不会返回任何HTML。只需从函数返回错误消息,然后在更合适的位置构建html即可。例如,模板内部。

票数 4
EN

Stack Overflow用户

发布于 2012-08-07 16:51:57

他说:你不需要这样做,但如果做得正确,你可以这样做。

2:为了做到这一点,我建议你在你的PHP error函数中使用EOF,它看起来像这样:

代码语言:javascript
复制
function errMsg()
{
       $error = <<<EOF 
<section>
<p>O crap!  There was an error</p>
</section>
EOF;
}
票数 5
EN

Stack Overflow用户

发布于 2012-08-07 16:51:25

  1. :是的,你做这件事的方式没有灵活性。
  2. 你应该把你所有的超文本标记语言从你的PHP中分离出来,至少在函数上是这样--唯一可以远程接受的地方是在一个视图中,视图中使用PHP只是为了显示函数的输出。
  3. 披萨!开个玩笑,披萨永远不会够用!?

看看Zend框架http://framework.zend.com/manual/en/zend.application.quick-start.html,它们将未捕获的错误消息转发到错误处理程序,然后该处理程序使用自己的视图呈现错误。

或者没有框架:

代码语言:javascript
复制
try{
     //do work here and throw exception on error
}
catch (Exception $e)
{
     //do error logging/display error
     //or preferably load another class which handles your error and produces output
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11842265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档