在多次使用相同的$ _GET键时最好定义一个变量吗?

时间:2015-10-06 05:40:46

标签: php

在脚本的多个位置我有......

if (isset($_GET['event-id']) { ... }

两次调用密钥会减慢速度吗?我应该只定义一个新的var ...

$event_id = $_GET['event-id'];
if ($event_id) { ... }

4 个答案:

答案 0 :(得分:1)

如果未设置$_GET['event-id'],这也会引发$event_id = $_GET['event-id'];

$event_id = isset($_GET['event-id']) ? $_GET['event-id'] : false;

我更喜欢

$event_id

特别是当我要多次使用if($event_id){ //do your code } 时。然后,我可以写:

$event_id

或者可能存在空if($event_id !== false){ //do your code } 的情况:

{{1}}

答案 1 :(得分:1)

你应该总是采用第二种方法

$event_id = $_GET['event-id'];
if ($event_id) { ... }

它不会减慢事情,但假设未来'event-id'的变化,那么你将不得不在每一个繁重任务的地方改变它。

答案 2 :(得分:0)

最好的方法是将其分配到var并在进行所有进一步处理之前对其进行验证,以确保此var不包含任何禁止的内容。

我不认为它会减慢因为它只是一个数组调用,但它是一个安全漏洞。

编辑:

如果未设置,您可以定义默认值。

答案 3 :(得分:0)

如果确实需要在代码中的多个位置检查$_GET['event-id'],可以使用Ternary Operator

设置一次
$event_id = isset($_GET['event-id']) ? $_GET['event-id'] : '' ;

然后您可以像if ($event_id)if(empty($event_id))if(!empty($event_id))一样使用它,具体取决于您对病情的需求。