PHP地址引‘&’用的两个注意点
foreach 循环
在foreach循环中经常用取地址的方式来修改循环体
$arr = ['www.baid.com','www.google.com'];
//给数组中的字符串拼接https://
//第一种做法
foreach($arr as $key=>$value) {
$arr[$key] = 'https://'.$value;
}
//第二种做法使用&
foreach($arr as &$value) {
$value = 'https://'.$value;
}
unset($value);
上面两种方式都可以实现给数组内的地址添加https://的功能,在我看来使用取地址的方式更加直观、方便,需要注意的是在使用foreach使用完毕后,最好是unset 取地址的变量,因为取地址变量是在foreach外也是存在的,可能会对后面的代码造成影响;
array_walk中使用
实现上面的功能也可以使用array_walk的方式
$arr = ['www.baidu.com', 'www.google.com'];
array_walk($arr, function(&$value){
$value ='https://'.$value;
});
如果要复制arr的站点到website变量中可以这样写
$arr = ['www.baidu.com', 'www.google.com'];
$website = [];
array_walk($arr, function($value) use(&$website){ //注意此时要写&$website
$website[] = $value;
});
同时也要注意考虑是否unset掉$website