最近我正在尝试适应 PSR 标准。在PSR-1 文件中指出:
文件应该声明符号(类、函数、常量等)或引起副作用(例如生成输出、更改 .ini 设置等),但不应该两者都做。
这是否意味着在类中的函数中编写输出(比如说echo '<b>some bold text</b>';
)是我不应该做的?
那不是那个意思。
它所指的只是当你include
这些文件时会发生什么。结果include 'foo.php'
应该是创建了一堆新符号(类、函数、常量),或者发生了一些副作用(添加了自动加载器,生成了 HTML 输出,或者通常发生了一些事情)。这两件事不应该混为一谈,因为您经常希望加载类而不会造成一些不可避免的副作用。
如果您 1)include
文件然后 2) 显式调用产生副作用的函数,那很好。否则所有产生副作用的代码都不能写在类或函数中,这简直是胡说八道。
用例子来总结一下。
<?php
namespace Foo;
class Bar
{
// ...
}
?>
<b>some text here</b>
<?php
namespace Foo;
class Bar
{
// ...
}
<b>some text here</b>
<?php echo "hello world"; ?>