2014-01-11 132 views
0

下面的代码是用于消毒发布的值。可一些告诉我是什么代码有什么区别

<?php 
    function sanitize_data(&$value, $key) { 
    $value = strip_tags($value); 
} 
array_walk($_POST['keyword'],"sanitize_data"); 
?> 

​​

感谢之差,

回答

0

第一个使用值作为refrence,所以你一些变量的变量调用它随时会在外部范围内进行更改,而不仅仅是功能本身。

查看manual for 'reference'如果您想了解更多信息。

0

它被称为'通过引用'。 &$value将涉及通过指针传递给函数的原始$value,而不是在函数版本上工作。请参阅PHP Manual

0

第一个函数的第一个参数的值是通过引用传递的,而第二个没有。如果变量是通过引用传递的,则对其进行的更改也将在函数作用域之外的值上完成(在您调用该函数的范围内)。

也读了PHP documentation (pass by reference),并且也在array_walk doc page上进行了演示。

0

第一种方法称为“传递值作为参考”。 因此$_POST数组值被改变。

在第二种方法不会改变$_POST

值可以检查,以便链接:有关它很好的解释。

https://stackoverflow.com/a/2157816/270037

0

第一函数获得$valuepassed by reference,因此它可以直接修改它,所述第二函数会得到$value的值。