PHP 最佳实践 - 多次读取 GET/POST 参数或创建变量
PHP Best Practice - Read GET/POST parameter multiple times or create variable
我想知道在这种情况下实际上最佳做法是什么。您会使用以下哪些代码片段?
doStuff($_GET["param"]);
doMoreStuff($_GET["param"]);
或
$variable = $_GET["param"];
doStuff($variable);
doMoreStuff($variable);
在性能方面有什么不同,甚至在好的 PHP 代码应该是什么样子方面有什么不同吗?
如果第一个更好,您建议在多少函数调用时使用一个变量?
您应该在全局变量 $_GET
中过滤参数。因此,最佳做法是将 $_GET
中过滤后的数据存储在变量中,并在代码的其他部分使用它。过滤是一种很好的方法,因为它使您的代码更安全。
在那里您可以阅读有关过滤输入的信息:http://php.net/manual/en/function.filter-input.php
如果未设置 $_GET["param"],您的代码将生成警告。
我会先验证$_GET['param']
是否真的存在,然后再做任何你想做的事情。
if(!isset($_GET['param'])){
//fail here with exit() or exception, or whatever
}
//your code here, now you know for sure that $_GET['param'] is present
doStuff($_GET['param']); //or whatever you like
你还应该相应地进一步验证你的参数,如果它的整数检查 is_numeric()
,最好在 (int)
之后进行转换。 empty()
也是你的朋友,但请注意,如果 $_GET['param']="0"
empty()
将 return 为真。
验证完成后,您可以选择任何一种方式,都可以。最终这将取决于您所处的情况。
两者几乎相同;
$variable = $_GET["param"];
将清理您的样式,如果您在不同页面中使用相同的变量,将会更有用。
其实$_GET数组也是一个变量。因此,多次使用 $_GET 应该不是问题。当您为 GET 数据创建一个单独的变量时,您的脚本将需要更多内存。
当您多次执行相同的操作时(例如从用户输入中过滤某些内容),最好为此创建一个变量并且不要操作 $_GET 或 $_POST 数组。在我看来,如果您期望 $_GET 数组中的直接用户输入会令人困惑,但它包含 filtered/manipulated 数据。
我想知道在这种情况下实际上最佳做法是什么。您会使用以下哪些代码片段?
doStuff($_GET["param"]);
doMoreStuff($_GET["param"]);
或
$variable = $_GET["param"];
doStuff($variable);
doMoreStuff($variable);
在性能方面有什么不同,甚至在好的 PHP 代码应该是什么样子方面有什么不同吗?
如果第一个更好,您建议在多少函数调用时使用一个变量?
您应该在全局变量 $_GET
中过滤参数。因此,最佳做法是将 $_GET
中过滤后的数据存储在变量中,并在代码的其他部分使用它。过滤是一种很好的方法,因为它使您的代码更安全。
在那里您可以阅读有关过滤输入的信息:http://php.net/manual/en/function.filter-input.php
如果未设置 $_GET["param"],您的代码将生成警告。
我会先验证$_GET['param']
是否真的存在,然后再做任何你想做的事情。
if(!isset($_GET['param'])){
//fail here with exit() or exception, or whatever
}
//your code here, now you know for sure that $_GET['param'] is present
doStuff($_GET['param']); //or whatever you like
你还应该相应地进一步验证你的参数,如果它的整数检查 is_numeric()
,最好在 (int)
之后进行转换。 empty()
也是你的朋友,但请注意,如果 $_GET['param']="0"
empty()
将 return 为真。
验证完成后,您可以选择任何一种方式,都可以。最终这将取决于您所处的情况。
两者几乎相同;
$variable = $_GET["param"];
将清理您的样式,如果您在不同页面中使用相同的变量,将会更有用。
其实$_GET数组也是一个变量。因此,多次使用 $_GET 应该不是问题。当您为 GET 数据创建一个单独的变量时,您的脚本将需要更多内存。
当您多次执行相同的操作时(例如从用户输入中过滤某些内容),最好为此创建一个变量并且不要操作 $_GET 或 $_POST 数组。在我看来,如果您期望 $_GET 数组中的直接用户输入会令人困惑,但它包含 filtered/manipulated 数据。