php 引用变量与数组引用遍历

php数组遍历默认是值传递而不是引用。

在变量赋值时,任意变量均可引用:

<?php

    // 数组引用
    $arr = array("a","b");

    $b = & $arr;

    $b['c'] = "c";

    var_dump($b);

    echo "<br>";

    var_dump($arr);  // 0->"a",1->"b","c"->"c"

    echo "<br>";

    // 基本对象引用
    $a = 2;

    $aa = & $a;

    $aa = 3;

    echo $a;
  // 3
  

使用以下语法让php遍历引用一个数组:

foreach ( $array as & $value ) {

实例:

<?PHP
 $authors = array( "Java", "PHP", "CSS", "HTML" ); 
 foreach ( $authors as  & $val ) { 
   if ( $val == "CSS" ) $val = "Javascript"; 
   echo $val . " "; 
 } 
 unset( $val ); 
 print_r ( $authors );   
?>

注意:

$unset($val) 确保 $val 变量在循环已完成。

当循环结束时,$ val仍然保存对最后一个元素的引用。在我们的代码中更改$ val改变$ authors数组的最后一个元素。通过取消设置$ val,我们避免潜在的错误。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注