ホームページ > バックエンド開発 > PHPチュートリアル > PHP は配列の受け渡しと参照による代入をどのように処理しますか?

PHP は配列の受け渡しと参照による代入をどのように処理しますか?

Susan Sarandon
リリース: 2024-12-10 10:14:20
オリジナル
783 人が閲覧しました

How Does PHP Handle Array Passing and Assignment by Reference?

PHP での引数の受け渡しと配列の割り当て

PHP の重要なデータ構造である配列は、通常、関数に渡されるか、変数に割り当てられます。ただし、これらの操作が基になる参照にどのような影響を与えるかを理解することが重要です。

関数の引数としての配列

配列が関数の引数として渡されると、デフォルトではコピーとして渡されます。これは、関数が元の配列を変更せずにコピー自体を操作することを意味します。関数が配列に変更を加えたとします。これらの変更は、関数が参照によって動作するように明示的に指示されていない限り、関数の外部にある元の配列には反映されません。

function my_func($a) {
    $a[] = 30;
}

$arr = array(10, 20);
my_func($arr);
var_dump($arr); // Output: array(10, 20)
ログイン後にコピー

配列を参照によって渡し、関数が元の配列を変更できるようにするには、次のようにします。関数は次のように宣言する必要があります:

function my_func(& $a) {
    $a[] = 30;
}
ログイン後にコピー

これで、関数内で行われた変更は、関数の外側の元の配列に反映されます。 function.

配列の代入

配列を新しい変数に代入する場合、参照演算子 & が使用されない限り、代入により配列の新しいコピーが作成されます。これは、元の配列と新しく割り当てられた変数が別々であり、一方に加えられた変更は他方には影響しないことを意味します。

$a = array(1, 2, 3);
$b = $a;
$b[] = 4;
// $a still contains the original array (1, 2, 3)
ログイン後にコピー

参照によって代入するには、参照演算子 & を使用する必要があります。

$a = array(1, 2, 3);
$b = & $a;
$b[] = 4;
// Both $a and $b now contain (1, 2, 3, 4)
ログイン後にコピー

以上がPHP は配列の受け渡しと参照による代入をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート