Php 带有require和function调用的内联代码
我想知道我是否应该为一个特定的问题编写一个函数(例如,Php 带有require和function调用的内联代码,php,Php,我想知道我是否应该为一个特定的问题编写一个函数(例如,function specific()),或者我是否应该将这段代码放入一个php脚本中,并在需要时调用require'specific.php' 我所说的具体问题是处理通过POST请求的已填写表单,然后重定向浏览器,因为PRG(POST/Redirect/Get)模式(其中包括,exit将被调用,并且在require函数调用后代码不会继续)。处理请求的代码需要两个脚本。考虑下面的代码: somePage.php require 'proces
function specific()
),或者我是否应该将这段代码放入一个php脚本中,并在需要时调用require'specific.php'
我所说的具体问题是处理通过POST请求的已填写表单,然后重定向浏览器,因为PRG(POST/Redirect/Get)模式(其中包括,exit
将被调用,并且在require
函数调用后代码不会继续)。处理请求的代码需要两个脚本。考虑下面的代码:
somePage.php
require 'process_form_fnc.php'; // for Variant 2
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// process filled form
require 'process_form.php'; // Variant 1
process_form_fnc(); // or Variant 2
}
您是选择功能还是需要变量(以及原因)?变量2。为什么?
- 这就是功能的全部目的
- 函数可以有参数和返回值
- 函数有自己的作用域,因此它不能干扰调用方作用域
require
在当前位置插入任意代码块是一种不好的黑客行为(尽管并不少见)。我总是喜欢将代码保存在函数中
对于C,您可以找到类似的讨论(
#include
任意代码段与函数),它们的论点几乎相同,共识也同样明确。使用include通常只有几个原因:
1) 您有一个通用或多用途代码片段,可以在多个页面上使用
2) 出于组织目的,您希望将代码的某些部分抽象为一种类似于“库”的容器/目录。我很少直接使用include/require。我的大部分工作都是通过类完成的,我使用自动加载来加载它。我个人会使用变体2,因为您遇到了这个问题
$var = "test";
include "test.php";
$var = "test2";
include "test".php";
如果您在其中定义了一个函数(例如用于排序),可能会导致错误。你会得到一份重复的声明。如果它是一个函数()
只要不在该函数中定义函数,就可以了。出于几个原因,我倾向于使用该函数,其中一个主要原因是变量的作用域 想象一下使用“require”的情况,然后在某个地方编辑所需的代码,以包含一个与代码中其他地方的变量冲突的新变量
假设您使用一个快速的小型通用变量,如$x或$i,您可能会创建间歇性的噩梦般的bug,这将是一个真正令人头痛的问题。此代码应该放在函数或方法中,以便它可以有自己的变量范围,而不是使全局名称空间变得模糊。然而,我更希望它是在一个类的方法中进行的。通过这种方式,我可以使用类自动加载程序仅在实际使用时加载包含的代码,并进一步清除全局命名空间
include和require还实际返回值(这不应使参数变小)。
include "test.php";
outputTest("test");
outputTest("test2");