在类的函数中编写输出是我不应该做的事情?

时间:2015-06-11 08:28:49

标签: php psr-1

最近我试图适应PSR标准。在PSR-1 document上声明:

  

文件应该声明符号(类,函数,常量,   等)或引起副作用(例如产生输出,改变.ini   设置等)但不应该两者兼而有之。

这是否意味着在类中的函数中编写输出(比如说echo '<b>some bold text</b>';)是我不应该做的事情?

2 个答案:

答案 0 :(得分:5)

那不是那个意思。

所有它指的是当你include这些文件时会发生什么。 include 'foo.php'的结果要么要么已经创建了一堆新符号(类,函数,常量),发生了一些副作用(自动加载器)添加,生成HTML输出,或者通常发生)。这两件事情不应该混在一起,因为你经常想要加载类而不会造成一些不可避免的副作用。

如果您1)include该文件,然后2)明确调用产生副作用的函数,那就完全没问题了。否则产生副作用的所有代码都不能写在类或函数中,这简直就是无意义。

答案 1 :(得分:0)

总结一下例子。

错误的例子(混合)

<?php

namespace Foo;

class Bar
{
  // ...
}

?>
<b>some text here</b>

好的例子#1(类声明)

<?php

namespace Foo;

class Bar
{
  // ...
}

好例子#2(模板)

<b>some text here</b>
<?php echo "hello world"; ?>