首页 > 试题广场 >

下面的脚本运行以后,$array数组所包含的值是什么?(

[单选题]
下面的脚本运行以后,$array数组所包含的值是什么?(    )
<?php
       $array= array('1','1');
       foreach($array as $k=>$v){
              $v= 2;
       }
?>
  • array (‘2’ , ‘2’)
  • array (‘1’ , ‘1’)
  • array (2 , 2)
  • array (Null , Null)
把$k=>$v改为$k=>&$v后才能改变数组的值。
发表于 2015-07-09 00:03:13 回复(3)
C
foreach循环并不能改变数组元素的值,如果要改变数组元素的值,需要使用引用类型
编辑于 2015-12-30 19:09:34 回复(2)
foreach循环并不能改变数组元素的值,如果要改变数组元素的值,需要使用引用类型。
$array= array('1','1');
       foreach($array as $k=>&$v){
              $v= 2;
       }
加引用,结果变为:$array= array('2','2');
不加引用,结果还是$array= array('1','1')。

发表于 2017-10-18 22:59:14 回复(0)
亲测Array ( [0] => 1 [1] => 1 )
发表于 2015-08-21 15:05:22 回复(0)
c
foreach循环操作的只是该变量的一个副本,因此foreach下对$key与$values进行任何操作,均不会影响原数组
发表于 2015-10-09 15:50:14 回复(0)
foreach循环并不能改变数组元素的值,如果要改变数组元素的值,需要使用引用类型。
发表于 2020-07-15 20:11:29 回复(0)
foreach循环并不能改变数组元素的值,如果要改变数组元素的值,需要使用引用类型:
foreach($array as $k=>&$v){
              $v= 2;
       }

发表于 2018-06-29 19:29:38 回复(0)
可以为理解为数组的值取出来放到了变量里面,因此不会改变
发表于 2018-06-21 23:54:09 回复(0)
foreach循环无法改变数组中的值,可以用引用符来改变数组中的值
发表于 2018-03-16 08:14:39 回复(0)
把$k=>$v改为$k=>&$v后才能改变数组的值。
发表于 2018-03-07 18:05:34 回复(0)
foreach循环并不能改变数组元素的值,如果要改变数组元素的值,需要使用引用类型
发表于 2017-09-03 18:04:55 回复(0)
  $array= array('1','1');
       foreach($array as $k=>&$v){
              $v= 2;
       }
print_r($array);
foreach循环并不能改变数组元素的值,如果要改变数组元素的值,需要使用引用类型
发表于 2017-03-02 10:31:21 回复(0)
<?php
       $array= array('1','1');
       foreach($array as $k=>$v){
              $array[$k]= 2;
       }
?>
或者
<?php
       $array= array('1','1');
       foreach($array as $k=>&$v){
              $v= 2;
       }
?>
发表于 2017-02-12 16:24:01 回复(0)
需要是引用才能改变值
发表于 2016-09-22 11:34:59 回复(0)
b       如果需要修改$v的值 需要在$v前面加& 
发表于 2016-07-22 11:33:11 回复(0)
除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。
自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>
发表于 2016-06-14 19:29:25 回复(0)
$array[$k]=2
发表于 2016-04-18 19:33:21 回复(0)
B。foreach不会改变值
发表于 2016-04-12 23:08:23 回复(0)
答案是B
发表于 2016-04-10 23:13:27 回复(0)
这段代码相当于下面的代码,所以不会对原数组造成影响的,所以选B
<?php
    $array= array('1','1');
    $v = $array[0];
    $v = 2;
    $v = $array[1];
    $v = 2;
?>
编辑于 2016-04-10 19:23:52 回复(0)