level 7
$a = range[1,10]; 要将小于10的加0; 等于10就变为字符串
我发现在foreach时如果对 $value 使用&$value 也就是这样 foreach($a as &$value) {} 对$value进行操作
var_dump打印出来之后 有些类型变成 &string
我用分隔数组的函数array_slice 随机分隔后 获取的值中 有些值会变为&int
我知道这个是引用&的问题 主要是我没理解到 原理
2019年08月07日 03点08分
1
level 7
你取引用,2个变量共用一个内存地址,一个变另一个肯定变啊,等于10变成字符串了,所以你遍历的数组里面原来的变量也变成字符串
2019年08月07日 03点08分
2
遍历完成后确实都变成字符串了,但是分隔后获取的值 有些变回整形了
2019年08月07日 03点08分
level 12
你在使用 foreach 的时候使用 &(取地址符,也就是C语言中的指针),那么在对 $value 进行操作的时候,响应的数组元素的值也会进行变化,而且你这个加0就是对把1变成了字符串,所以有一个10是字符串类型的,如果需要整形都话 $value = (int)($value.'0'); 即可
2019年08月07日 08点08分
3