Apakah maksud parameter panjang berubah dalam PHP Bolehkah ia dilaksanakan menggunakan tatasusunan?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-14 10:49:43
0
5
1081
<?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?

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(5)
習慣沉默

Maksudnya ialah anda tidak perlu mengisytiharkan tatasusunan secara berasingan

我想大声告诉你

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); 
}
}
学霸

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.

我想大声告诉你

redis.lpush adegan

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

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan