Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah kaedah lulus parameter fungsi PHP dicerminkan dalam parameter bernama?

Bagaimanakah kaedah lulus parameter fungsi PHP dicerminkan dalam parameter bernama?

王林
王林asal
2024-04-16 09:36:02294semak imbas

Dalam PHP, parameter yang dinamakan membenarkan menentukan nama parameter, yang boleh digabungkan dengan nilai lulus dan rujukan lulus. Melepasi nilai menyalin nilai parameter, dan pengubahsuaian dalam fungsi tidak menjejaskan nilai asal. Alamat parameter yang disalin diluluskan melalui rujukan, dan pengubahsuaian dalaman fungsi secara langsung mengubah nilai asal.

PHP 函数的参数传递方式在命名参数中的体现?

Kaedah lulus parameter fungsi PHP ditunjukkan dalam parameter bernama

Dalam PHP, terdapat dua cara lulus parameter: lulus mengikut nilai dan lulus melalui rujukan. Apabila menggunakan parameter bernama, anda boleh menentukan nama parameter secara eksplisit, dengan itu membezakan parameter berbeza dan mengendalikannya secara berbeza bergantung pada cara ia diluluskan.

Nilai lulus

Apabila menggunakan nilai lulus, nilai parameter yang dihantar ke dalam fungsi akan disalin ke dalam fungsi. Dalam kes ini, sebarang pengubahsuaian kepada nilai parameter di dalam fungsi tidak akan menjejaskan nilai asal.

function example(int $number) {
  $number++; // 修改了函数内部的 $number
}

$num = 10;
example($num); // $num 仍然是 10,因为函数的参数是按值传递的

Lulus melalui rujukan

Apabila menggunakan rujukan lulus, alamat parameter yang dihantar ke dalam fungsi akan disalin ke bahagian dalam fungsi. Ini bermakna pengubahsuaian kepada nilai parameter dalam fungsi secara langsung mempengaruhi nilai asal.

Untuk menggunakan rujukan lulus, anda perlu menambah simbol & sebelum jenis parameter. & 符号。

function example(int &$number) {
  $number++; // 修改了函数内部的 $number,也修改了原始 $num
}

$num = 10;
example($num); // $num 现在是 11,因为函数的参数是按引用传递的

命名参数中的体现

在使用命名参数时,可以通过在参数列表中使用 : 符号,然后指定参数名称并赋值来传递参数。此时,PHP 会自动根据参数名称来匹配对应的值。

命名参数结合了按值传递和按引用传递的优势。当参数使用按值传递时,它会自动创建参数值的一个副本。但是,如果您需要在函数内部对原始值进行修改,则可以通过在参数名称前加上 & 符号,将其按引用传递。

例如,以下函数根据 $operation

function calculator(int $num1, int $num2, string $operation) {
  switch ($operation) {
    case 'add':
      $result = $num1 + $num2;
      break;
    case 'subtract':
      $result = $num1 - $num2;
      break;
    case 'multiply':
      $result = $num1 * $num2;
      break;
    case 'divide':
      if ($num2 !== 0) {
        $result = $num1 / $num2;
      } else {
        throw new DivisionByZeroError;
      }
      break;
  }

  return $result;
}

$num1 = 10;
$num2 = 5;
$operation = 'add'; // 可以使用命名参数显式指定参数名称
$result = calculator(num1: $num1, num2: $num2, operation: $operation);

Termasuk dalam parameter bernama

Apabila menggunakan parameter bernama, anda boleh lulus parameter dengan menggunakan simbol : dalam senarai parameter, kemudian nyatakan nama parameter dan berikan nilai. Pada masa ini, PHP secara automatik akan memadankan nilai yang sepadan berdasarkan nama parameter. 🎜🎜Parameter yang dinamakan menggabungkan kelebihan lulus mengikut nilai dan lulus melalui rujukan. Apabila parameter diluluskan oleh nilai, ia secara automatik mencipta salinan nilai parameter. Walau bagaimanapun, jika anda perlu mengubah suai nilai asal di dalam fungsi, anda boleh menghantarnya melalui rujukan dengan mendahului nama parameter dengan simbol &. 🎜🎜Sebagai contoh, fungsi berikut menjalankan operasi berbeza berdasarkan parameter $operation. 🎜rrreee🎜Dengan menggunakan parameter yang dinamakan, anda boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda dan menyatakan dengan jelas nama setiap parameter dan cara ia dihantar. Ini membantu mengelakkan ralat semasa menghantar parameter dan menjadikan kod lebih mudah untuk nyahpepijat. 🎜

Atas ialah kandungan terperinci Bagaimanakah kaedah lulus parameter fungsi PHP dicerminkan dalam parameter bernama?. 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