cari

Rumah  >  Soal Jawab  >  teks badan

Apakah maksud parameter panjang berubah dalam PHP Bolehkah ia dilaksanakan menggunakan tatasusunan?

<?php
function test(...$args)
{
    print_r($args);
}

test(1,2,3);
//输出
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
?>

Anda boleh meletakkan parameter ke dalam tatasusunan semasa memanggil ujian
Apakah keperluan ciri baharu ini?

曾经蜡笔没有小新曾经蜡笔没有小新2796 hari yang lalu1086

membalas semua(5)saya akan balas

  • 習慣沉默

    習慣沉默2017-06-14 10:51:43

    Maksudnya ialah anda tidak perlu mengisytiharkan tatasusunan secara berasingan

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-14 10:51:43

    Anda boleh memahaminya sebagai gula sintaksis
    func_get_argsIa boleh dilaksanakan, tetapi kadangkala ia tidak begitu elegan

    function sort($mode,...$args) {
      if($mode === SORT_DESC) {
          print_r($args);
      }
    }
    
    function sort() {
     $args = func_get_args();
     if($args[0] === SORT_DESC){
      array_shift($args);// 去除mode
       print_r($args); 
    }
    }
    

    balas
    0
  • 欧阳克

    欧阳克2017-06-14 10:51:43

    Sebagai contoh, apabila anda ingin memanggil antara muka, alamat perkhidmatan banyak antara muka adalah sama, tetapi ia dilaksanakan oleh kelas dan kaedah masing-masing Jika anda ingin merangkum, anda tidak boleh menentukan jenis dan nombor parameter , $className ialah Kelas khusus anda, $actionName ialah kaedah yang dilaksanakan dalam kelas

    call_user_func_array([$className, $actionName], $params)

    Dengan cara ini, sukar untuk anda mengendalikan pelbagai parameter di satu tempat Perkara yang mudah ialah apabila menulis antara muka panggilan tertentu, parameter diluluskan mengikut peraturan, tetapi panggilan dan pemulangan sebenar dihantar secara seragam oleh $. params. Walaupun PHP adalah jenis yang sama, antara muka yang anda panggil mungkin ditulis dalam bahasa statik lain dan jenisnya mestilah konsisten.

    Semestinya, jika anda hanya menggunakannya sekali, anda boleh lulus terus pembolehubah, tidak perlu bersusah payah.

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-14 10:51:43

    redis.lpush adegan

    public function lPush( $key, $value1, $value2 = null, $valueN = null ) {}

    balas
    0
  • 迷茫

    迷茫2017-06-14 10:51:43

    Ia hanyalah gula sintaksis, dengan parameter berubah-ubah. Banyak bahasa telah melaksanakannya, dan PHP juga telah melaksanakannya

    balas
    0
  • Batalbalas