以下代码用于清理已过帐的值。有人可以告诉我,有什么区别,
<?php
function sanitize_data(&$value, $key) {
$value = strip_tags($value);
}
array_walk($_POST['keyword'],"sanitize_data");
?>
和
<?php
function sanitize_data($value, $key) {
$value = strip_tags($value);
}
array_walk($_POST['keyword'],"sanitize_data");
?>
由于
答案 0 :(得分:0)
第一个使用值作为参考,因此每次使用某个变量调用它时,变量都将在外部作用域中更改,而不仅仅是在函数本身中。
如果您想了解更多信息,请查看manual for 'reference'。
答案 1 :(得分:0)
它被称为“按参考传递”。 &$value
将与通过指针传递给函数的原始$value
相关,而不是处理函数版本。
请参阅PHP Manual。
答案 2 :(得分:0)
第一个函数第一个参数的值是通过引用传递的,而第二个参数则不是。如果变量是通过引用传递的,则对函数作用域外的值(在您调用函数的作用域中)也将对其进行更改。
另请阅读PHP documentation (pass by reference),并在array_walk doc page上进行了演示。
答案 3 :(得分:0)
第一种方法称为“将值作为参考传递”。
因此$_POST
数组值已更改。
第二种方法不会更改$_POST
您可以查看SO链接:关于它的精彩解释。
答案 4 :(得分:0)
第一个函数获取$value
passed by reference,因此可以直接修改它,第二个函数会传递$value
的值。