PHP,包含参数
我有一个PHP文件,它将从表单中调用。因此,它通过$获取参数 现在我需要与此文件完全相同的功能,但不是在这样的表单调用中。 我将把它包含在带有固定参数的普通代码中(通常来自表单)。 因此,我的文件可以使用表单,也可以不使用表单 我只知道包含和设置前面的$的方法。但我不确定这是最优雅的方式(我不喜欢设置$u GET这样的东西) 还有其他方法吗PHP,包含参数,php,Php,我有一个PHP文件,它将从表单中调用。因此,它通过$获取参数 现在我需要与此文件完全相同的功能,但不是在这样的表单调用中。 我将把它包含在带有固定参数的普通代码中(通常来自表单)。 因此,我的文件可以使用表单,也可以不使用表单 我只知道包含和设置前面的$的方法。但我不确定这是最优雅的方式(我不喜欢设置$u GET这样的东西) 还有其他方法吗 br,chris您可以将代码转换为以关联数组为参数的函数 这样,您可以在必要时包含它,并使用$\u GET或您自己构建的数组调用该函数。您可以先执行if语句
br,chris您可以将代码转换为以关联数组为参数的函数
这样,您可以在必要时包含它,并使用
$\u GET
或您自己构建的数组调用该函数。您可以先执行if
语句,查看是否已经设置了$\u GET参数。如果已经设置了,则将其分配给脚本可以使用的变量;如果尚未设置,则只需将固定参数分配给变量。如果我理解正确,您可以创建一个包含默认值的数组。调用此脚本时,它将检查$\u GET
是否为空。如果$\u GET
为空,则使用默认值,否则,默认数组将被$\u GET
覆盖并使用这些值
$def = array(
'keyA' => 'valueA',
'keyB' => 'valueB'
);
if ( !empty( $_GET ) ) $def = $_GET;
// $def contains either your defaults, or the user-provided values
需要注意的是,这个逻辑可以分为两个文件
/* index.php */
$def = array(
'keyA' => 'valueA',
'keyB' => 'valueB'
);
if ( !empty( $_GET ) ) $def = $_GET;
include( 'doStuff.php' );
/* doStuff.php */
if ( !isset( $def ) ) $def = $_GET;
echo $def['keyA'];
请注意,在
doStuff.php
中,我们检查是否设置了$def
。如果此脚本包含在index.php
中,则我们知道$def
已设置,并且存在这些默认值。如果直接调用doStuff.php
,那么我们知道$def
很可能没有设置,我们需要根据$\u GET
设置它。无论哪种方式,当脚本准备就绪时,我们将有一个名为$def
的变量,从中我们将获得所有的值。由于您应该在文件中执行某种参数清理,您可以像这样解析参数
$someConfigVar = isset($config['someConfigVar']) ?
$config['someConfigVar'] :
sanitize($_GET['someConfigVar'];
在这种情况下,您只需要在包含文件之前填充
$config
数组。此代码段期望sanitize()
成为您的清理功能(防止xss和SQL注入等)将对表单数据进行操作的代码放在一个单独的文件中
此文件将使用上下文数组变量$params,而不是$\u GET
然后,无论您需要在何处使用此文件的操作,都应将其包含在以下函数中
如果要使用web参数,请执行includeElement('your_file',$\u GET)
/**
* Allow a file inclusion with a set of parameters
* @param string $src File
* @param array $params $parameters
*/
function includeElement($src, $params = array())
{
include($src);
}
这就是我要建议的。创建一个接受参数的函数。处理表单时,请使用GET vars作为函数调用的参数,否则,请将参数设置为所需的任何参数。