include()/ require()带有"副作用"是一种不好的做法吗?

hea*_*low 4 php

正在做类似的事情

_________________________
//index.php
...
require("header.php");
...
_________________________

_________________________
//header.php
printHeader()

function printHeader(){
    echo 'something';
    ...
}
_________________________
Run Code Online (Sandbox Code Playgroud)

被认为是避免不良做法?

我个人认为,执行require()(或require_once()或者include(),这不是点)调用应该只添加一个"链接"到其他功能/对象,并不会执行自身的东西.换句话说,在我看来,require应该以与导入/使用其他oo语言非常相似的方式运行.

我上面写的例子非常简单,但显然我也在反对各种"副作用".定义函数或会话的一些技巧是我在一些包含的文件中经常发现的其他滥用行为.

Aln*_*tak 5

是的,恕我直言,这是非常糟糕的做法,除非明确记录.

include或者require(和它们在其他语言中的等价物)通常应该只新函数引入当前作用域,并且永远不会触发它们的调用.