Rumah >pembangunan bahagian belakang >masalah PHP >Apakah cara untuk menghantar parameter kepada fungsi dalam php?

Apakah cara untuk menghantar parameter kepada fungsi dalam php?

青灯夜游
青灯夜游asal
2021-07-20 19:44:448798semak imbas

Kaedah untuk menghantar parameter dalam fungsi PHP: 1. Lulus mengikut nilai, salin nilai parameter sebenar dan kemudian hantar ke parameter rasmi fungsi 2. Lulus melalui rujukan, salin alamat memori; parameter sebenar dan lulusnya Untuk parameter formal fungsi;

Apakah cara untuk menghantar parameter kepada fungsi dalam php?

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Apabila memanggil fungsi, anda perlu lulus parameter ke fungsi , parameter yang dihantar ke dalam fungsi dipanggil parameter sebenar, dan parameter yang ditakrifkan oleh fungsi dipanggil parameter formal. Terdapat empat cara untuk menghantar parameter kepada fungsi, iaitu lulus mengikut nilai, lulus dengan rujukan, parameter lalai dan parameter panjang berubah-ubah.

1. Lulus nilai

Pelulusan nilai ialah kaedah hantaran nilai lalai untuk fungsi dalam PHP, juga dikenali sebagai "salinan melalui nilai". Seperti namanya, kaedah lulus nilai akan menyalin nilai parameter sebenar dan kemudian menyerahkannya kepada parameter formal fungsi, jadi mengendalikan nilai parameter dalam fungsi tidak akan menjejaskan parameter sebenar di luar fungsi. Oleh itu, jika anda tidak mahu fungsi mengubah suai nilai parameter sebenar, anda boleh menghantarnya mengikut nilai.

【Contoh】Yang berikut mentakrifkan fungsi mudah Fungsi ini mempunyai dua parameter, dan nilai parameter ditukar dalam fungsi.

<?php
    function swap($a, $b){
        echo &#39;函数内,交换前 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
        $temp = $a;
        $a = $b;
        $b = $temp;
        echo &#39;函数内,交换后 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
    }
    $x = 5;
    $y = 7;
    echo &#39;函数外,交换前 $x = &#39;.$x.&#39;, $y = &#39;.$y.&#39;<br>&#39;;
    swap($x, $y);
    echo &#39;函数外,交换后 $x = &#39;.$x.&#39;, $y = &#39;.$y;
?>

Keputusan berjalan adalah seperti berikut:

函数外,交换前 $x = 5, $y = 7
函数内,交换前 $a = 5, $b = 7
函数内,交换后 $a = 7, $b = 5
函数外,交换后 $x = 5, $y = 7

Anda boleh melihat daripada hasil yang dijalankan bahawa nilai memang ditukar dalam fungsi, tetapi tiada perubahan dalam nilai di luar fungsi. Oleh itu, kita boleh mengatakan bahawa menghantar fungsi mengikut nilai hanyalah menghantar salinan pembolehubah. Jadi jika anda mahu fungsi itu boleh beroperasi pada parameter sebenar di luar fungsi, anda perlu menggunakan hantaran rujukan.

2 Melewati rujukan

Melalui rujukan ialah menyalin alamat memori parameter sebenar dan kemudian menghantarnya ke parameter formal, parameter sebenar dan parameter formal. fungsi Mereka semua menunjuk ke alamat memori yang sama, jadi operasi fungsi pada parameter formal akan mempengaruhi parameter sebenar di luar fungsi.

Melalui rujukan ialah menghantar alamat memori parameter sebenar kepada parameter rasmi fungsi. Oleh itu, parameter sebenar dan parameter formal menghala ke alamat memori yang sama. Pada masa ini, semua operasi di dalam fungsi akan mempengaruhi nilai parameter sebenar di luar fungsi. Kaedah lulus melalui rujukan ialah menambah simbol & berdasarkan nilai lulus, seperti yang ditunjukkan di bawah:

function name (&参数1, &参数2, ..., &参数3) {
    ...    
}

[Contoh] Laraskan sedikit kod contoh di atas dan gunakan kaedah lulus dengan merujuk kepada fungsi swap Masukkan parameter, kodnya adalah seperti berikut:

<?php
    function swap(&$a, &$b){
        echo &#39;函数内,交换前 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
        $temp = $a;
        $a = $b;
        $b = $temp;
        echo &#39;函数内,交换后 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
    }
    $x = 5;
    $y = 7;
    echo &#39;函数外,交换前 $x = &#39;.$x.&#39;, $y = &#39;.$y.&#39;<br>&#39;;
    swap($x, $y);
    echo &#39;函数外,交换后 $x = &#39;.$x.&#39;, $y = &#39;.$y;
?>

Hasil yang dijalankan adalah seperti berikut:

函数外,交换前 $x = 5, $y = 7
函数内,交换前 $a = 5, $b = 7
函数内,交换后 $a = 7, $b = 5
函数外,交换后 $x = 7, $y = 5

3

Parameter lalai ialah Tentukan nilai lalai untuk satu atau lebih parameter formal fungsi Jika nilai yang sepadan tidak diluluskan semasa memanggil fungsi, fungsi akan menggunakan nilai lalai ini. Ini boleh mengelakkan ralat semasa memanggil tanpa parameter Ia juga boleh digunakan Sesetengah program kelihatan lebih munasabah. Jika parameter yang sepadan dimasukkan, nilai lalai ini akan diganti. Parameter lalai bagi fungsi

adalah seperti berikut:

function name ($str = &#39;PHP中文网&#39;, $url) {
    echo $str;  
}
Antaranya, "Rangkaian PHP Cina" selepas parameter formal $str ialah nilai lalainya dan parameter formal memerlukan untuk digunakan antara nilai lalai =sambungan.

[Contoh] Mari kita tentukan fungsi dengan parameter lalai seperti berikut:

<?php
    function add($a, $b=56){
        echo $a.&#39; + &#39;.$b.&#39; = &#39;.($a+$b).&#39;<br>&#39;;
    }
    add(11);
    add(37, 29);
?>
Hasil berjalan adalah seperti berikut:

11 + 56 = 67
37 + 29 = 66
Parameter lalai juga boleh Berbilang, dan parameter lalai mesti diletakkan di sebelah kanan parameter bukan lalai, dan nilai parameter lalai yang ditentukan mestilah nilai tertentu, seperti nombor atau rentetan, bukan pembolehubah.

[Contoh] Mari kita tentukan fungsi dengan berbilang parameter lalai seperti berikut:

<?php
    function add($a, $b=33, $c=57){
        echo $a.&#39; + &#39;.$b.&#39; + &#39;.$c.&#39; = &#39;.($a+$b+$c).&#39;<br>&#39;;
    }
    add(11);
    add(31, 22);
    add(64, 9, 7);
?>
Hasil larian adalah seperti berikut:

11 + 33 + 57 = 101
31 + 22 + 57 = 110
64 + 9 + 7 = 80

4. Parameter panjang boleh ubah

Dalam PHP 5.6 dan versi yang lebih baru, parameter formal fungsi boleh digunakan... untuk menunjukkan bahawa fungsi boleh menerima bilangan parameter berubah dan parameter berubah akan dirawat sebagai Buat tatasusunan dan hantarkannya ke fungsi. Contohnya adalah seperti berikut:

<?php
    function test(...$arr){
        print_r($arr);
    }
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    test(1, 2, 3, 4);
    test(5, 6, 7, 8, 9, 10);
?>
Hasil larian adalah seperti berikut:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
Array
(
    [0] => 5
    [1] => 6
    [2] => 7
    [3] => 8
    [4] => 9
    [5] => 10
)
Pembelajaran yang disyorkan: "

Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah cara untuk menghantar parameter kepada fungsi dalam php?. 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