icc*_*c97 1 php standards psr-1
接下来是另一个问题。
在《PSR-1指南》中,第2.3节“副作用”规则限制include了在同一文件中使用和声明函数,例如:
<?php
// side effect: loads a file
include "file.php";
// declaration
function foo()
{
// function body
}
Run Code Online (Sandbox Code Playgroud)
但是您可以include在函数内添加文件吗?
例如
<?php
// declaration
function foo()
{
// side effect: loads a file
include "file.php";
}
Run Code Online (Sandbox Code Playgroud)
关于该规则要了解的是声明和执行之间的区别。您也可以将其视为代码加载与代码执行之间的对比。当你加载代码,你不要指望它做任何事情,只是还没有。例如:
require_once 'utility_functions.php';
Run Code Online (Sandbox Code Playgroud)
包含此文件是因为您要使用该文件中的某些实用程序功能。您需要包含此文件才能使用其中的任何功能,但不能包含该文件。但是,如果该文件崩溃并产生一些副作用,仅将其包括在内,您就陷入了一个深坑。例如,假设文件始终更改了错误报告设置。那会很烦人。每次添加此文件时,您总是必须重置错误报告:
require_once 'utility_functions.php';
error_reporting(E_ALL);
ini_set('error_display', false);
Run Code Online (Sandbox Code Playgroud)
这显然是疯狂的,并且是潜在问题的根源。
另一方面,执行代码后,您希望代码执行可以做一些事情,甚至可能产生副作用。而且,您可以控制代码执行,而与文件所做的任何操作不同,只需将其包含在内即可。
require_once 'utility_functions.php';
utility_do_something(); // side effects here are OK and/or expected
Run Code Online (Sandbox Code Playgroud)