Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah PHP Mengendalikan Hantaran Array dan Tugasan melalui Rujukan?

Bagaimanakah PHP Mengendalikan Hantaran Array dan Tugasan melalui Rujukan?

Susan Sarandon
Susan Sarandonasal
2024-12-10 10:14:20752semak imbas

How Does PHP Handle Array Passing and Assignment by Reference?

Melalukan Argumen dan Menetapkan Array dalam PHP

Array, struktur data penting dalam PHP, biasanya diserahkan kepada fungsi atau diberikan kepada pembolehubah. Walau bagaimanapun, adalah penting untuk memahami cara operasi ini mempengaruhi rujukan asasnya.

Array sebagai Argumen Fungsi

Apabila tatasusunan dihantar sebagai argumen kepada fungsi, ia adalah secara lalai diluluskan sebagai salinan. Ini bermakna fungsi beroperasi pada salinan itu sendiri, tanpa mengubah suai tatasusunan asal. Katakan fungsi membuat perubahan pada tatasusunan; perubahan ini tidak akan mencerminkan dalam tatasusunan asal di luar fungsi, melainkan fungsi itu diarahkan secara eksplisit untuk beroperasi melalui rujukan.

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

$arr = array(10, 20);
my_func($arr);
var_dump($arr); // Output: array(10, 20)

Untuk menghantar tatasusunan melalui rujukan dan membenarkan fungsi mengubah suai tatasusunan asal, fungsi mesti diisytiharkan sebagai:

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

Kini, perubahan yang dibuat dalam fungsi akan ditunjukkan dalam tatasusunan asal di luar fungsi.

Menetapkan Tatasusunan

Apabila menetapkan tatasusunan kepada pembolehubah baharu, tugasan mencipta salinan tatasusunan baharu, melainkan pengendali rujukan & digunakan. Ini bermakna tatasusunan asal dan pembolehubah yang baru ditetapkan adalah berasingan dan perubahan yang dibuat kepada satu tidak akan menjejaskan yang lain.

$a = array(1, 2, 3);
$b = $a;
$b[] = 4;
// $a still contains the original array (1, 2, 3)

Untuk menetapkan melalui rujukan, pengendali rujukan & mesti digunakan:

$a = array(1, 2, 3);
$b = & $a;
$b[] = 4;
// Both $a and $b now contain (1, 2, 3, 4)

Atas ialah kandungan terperinci Bagaimanakah PHP Mengendalikan Hantaran Array dan Tugasan melalui Rujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn