所以我之前问了一个类似的问题,现在我只是更困惑,所以我会用不同的方式来问它……
我正在尝试做的是抽象我的php,并将在我的验证器中用作错误消息的html片段放入函数中,这些函数将html返回到页面中需要它们的位置。
我现在有的是:
<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开发,回到披萨外卖?:-\
发布于 2012-08-07 16:51:02
我不会返回任何HTML。只需从函数返回错误消息,然后在更合适的位置构建html即可。例如,模板内部。
发布于 2012-08-07 16:51:57
他说:你不需要这样做,但如果做得正确,你可以这样做。
2:为了做到这一点,我建议你在你的PHP error函数中使用EOF,它看起来像这样:
function errMsg()
{
$error = <<<EOF
<section>
<p>O crap! There was an error</p>
</section>
EOF;
}发布于 2012-08-07 16:51:25
看看Zend框架http://framework.zend.com/manual/en/zend.application.quick-start.html,它们将未捕获的错误消息转发到错误处理程序,然后该处理程序使用自己的视图呈现错误。
或者没有框架:
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
}https://stackoverflow.com/questions/11842265
复制相似问题