7

最近我正在尝试适应 PSR 标准。在PSR-1 文件中指出:

文件应该声明符号(类、函数、常量等)或引起副作用(例如生成输出、更改 .ini 设置等),但不应该两者都做。

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

4

2 回答 2

6

那不是那个意思。

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

如果您 1)include文件然后 2) 显式调用产生副作用的函数,那很好。否则所有产生副作用的代码都不能写在类或函数中,这简直是胡说八道。

于 2015-06-11T08:46:32.500 回答
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"; ?>
于 2015-06-11T08:50:13.357 回答