面向对象的PHP函数用法

时间:2012-06-28 17:22:49

标签: php function declaration

我从程序员那里拿起网站,几乎所有的时间他都找到了一些功能声明。

他包括类和调用函数,例如update_user_info($_POST); 然后在课堂上就像这样

...
function update_user_info($obj) {
   if (!empty($_POST["user_name"]) && !empty($_POST["user_email"])) (
      $sql = "UPDATE myusers SET user_name = {$_POST["user_name"]} WHERE user_id = {$_POST["user_email"]}";
      ...
   )

}
...

有趣的是她从不使用$obj变量。

我试图告诉他,但他说这没有区别,如果我使用它或直接发布我知道它的错误但不能喜欢把它说出来,有人能告诉我几点为什么这不是好的做法?< / p>

编辑:从安全角度来看,只是常识,即使将变量传递给函数并且之后不再使用它,对我来说也没有任何意义。 例如如果我决定改变发布到函数的变量,它将不会影响任何东西,因为函数失去了它被封闭,普遍的本质的本质。他使用它的方式就像常规代码只是放在别处,没有理由他可以在同一个文件中执行它,他称之为函数效果是相同的。他 每个页面都有新功能,我从未见过任何其他页面通过项目实际重复。

1 个答案:

答案 0 :(得分:1)

在没有过滤的情况下接受这样的$ _POST用户输入会让您对SQL Injection开放。

至于$obj的使用,由于你截断了代码,因此不清楚它是如何被使用的。但是,如果它确实从未在函数内部使用过,那么就没有理由将它放在那里。但是,听起来你只是指在括号内使用$obj。在那种情况下,它是函数的一个参数,在调用函数之前它实际上没有声明。在这种用法中,永远不要声明$obj,然后将其用作函数参数。事实上,这是更可取的。