Php 数组"走"递归can';当我使用函数htmlspecialchars时无法工作?
我使用array\u walk\u recursive将htmlspecialchars应用于我的数组值,但它不起作用,htmlspecialchars在我手动使用时起作用; 这是我的密码:Php 数组"走"递归can';当我使用函数htmlspecialchars时无法工作?,php,htmlspecialchars,Php,Htmlspecialchars,我使用array\u walk\u recursive将htmlspecialchars应用于我的数组值,但它不起作用,htmlspecialchars在我手动使用时起作用; 这是我的密码: $new[] = "<a href='test'>Test</a><li><div>"; var_dump(array_walk_recursive($new,'htmlspecialchars')); // true var_dump($new) ;
$new[] = "<a href='test'>Test</a><li><div>";
var_dump(array_walk_recursive($new,'htmlspecialchars')); // true
var_dump($new) ; // no change
$new[]=“”;
变量转储(数组遍历递归($new,'htmlspecialchars');//真的
var_dump($new);//无变化
这是因为原始数组不会被修改,除非您自己在回调函数中修改它
您的回调函数基本上是:
function($item, $key) {
htmlspecialchars($item);
}
因此,在调用函数时,不会存储任何内容,也不会更改原始数组
如果要修改函数中的值,可以通过引用传递:
function(&$item, $key) {
$item = htmlspecialchars($item);
}
因此,结果如下所示:
$new[] = "<a href='test'>Test</a><li><div>";
array_walk_recursive($new, function(&$item, $key) {
$item = htmlspecialchars($item);
});
var_dump($new) ; // change!
$new[]=“”;
数组\u walk\u递归($new,function(&$item,$key){
$item=htmlspecialchars($item);
});
var_dump($new);//改变
如果愿意,您当然可以定义一个单独的函数。在以下定义中:
array\u walk\u recursive-将用户函数递归应用于每个
数组成员
因此,您需要创建一个使用htmlspecialchars的用户定义函数,如下所示:
$new[] = "<a href='test'>Test</a><li><div>";
array_walk_recursive($new, "specialChars");
var_dump($new);
function specialChars(&$value) {
$value = htmlspecialchars($value);
}
也许有用@Terminus我已经解决了,谢谢!!!
array (size=1)
0 => string '<a href='test'>Test</a><li><div>' (length=56)