PHP 最佳实践 - 多次读取 GET/POST 参数或创建变量



我想知道在这种情况下,最佳实践实际上是什么。您将使用以下哪一个代码片段?

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

两者实际上是相同的;

$variable = $_GET["param"];

将清理您的样式,如果您在不同页面中使用相同的变量,则会更有用。

如果未设置 $_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()会返回真。

验证完成后,您可以选择任何一种方法,两者都很好。最终,这将取决于您所处的情况。

实际上,$_GET 数组也是一个变量。因此,多次使用 $_GET 应该不是问题。当您为 GET 数据创建单独的变量时,您的脚本将需要更多的内存。

当您多次执行相同的操作时(例如,从用户的输入中过滤某些内容),最佳做法是为此创建一个变量,并且不要操作 $_GET 或 $_POST 数组。在我看来,如果您希望在 $_GET 数组中直接输入用户,但它包含过滤/操作的数据,这是令人困惑的。

最新更新