2012-02-04 41 views
1

这是一个风格问题,我想。为什么人们在PHP中使用$_GET$_POST数据分配变量时遇到了麻烦?例如,为什么要这样做:

<?php 
    $name = $_GET['name']; 
    echo $name; 
?> 

什么时候可以这样做呢?

<?php 
    echo $_GET['name']; 
?> 

回答

6

有以下几个原因:

  1. 很容易写,尤其是包括在字符串中时。

  2. 您只需对其进行一次消毒,并知道每当您调用临时变量时,它就是已消毒的版本。

  3. (这是一个大的)$ _GET和$ _POST变量可以在全球范围,这意味着多个功能或陈述可能取决于它的价值。如果你需要修改一个变量(例如$ _GET ['var'] ++),那么不影响其他函数可能很重要。因此,在$ _GET或$ _POST变量在另一个地方使用时,将值存储在工作变量中会更安全。

  4. 如果你必须多次访问变量,每次从数组中读出它会变得更慢......我试图将它从列表中彻底排除,因为差异非常小,但是当有些人优化大循环时,他们会将变量存储在数组之外。但是,即使在数十万次读取之后,速度差异可能并不明显,所以它并不是列表中特别引人注目的补充。

4

对于其中一个,如果您需要多次使用它,则更容易输入。另外,我会怀疑$ _GET/$ _ POST变量中的数据,但是我通常会在将数据分配给变量时对数据进行清理或转义,因此如果您遵循这种类型的做法,则知道该变量可以安全使用。始终过滤输入,并转义输出。

我的2¢

相关问题