Sprintf değişken bağımsız değişken listesi Passing ()

3 Cevap php

Ben (diğer şeyler arasında) bağımsız değişken bir dizi kabul eder ve sonra () sprintf iletir bir fonksiyon yazmak istiyorum.

Örneğin:

<?php
function some_func($var) {
  // ...
  $s = sprintf($var, ...arguments that were passed...);
  // ...
}

some_func("blah %d blah", $number);
?>

Ben bu PHP nasıl yapabilirim?

3 Cevap

function some_func() {
    $args = func_get_args();
    $s    = call_user_func_array('sprintf', $args);
}

// or

function some_func() {
    $args = func_get_args();
    $var  = array_shift($args);
    $s    = vsprintf($var, $args);
}

func_get_args önce 5.3 PHP sürümlerinde bir fonksiyonun argümanları listesinde kullanılan olamaz çünkü $args geçici değişken gereklidir.

İşte yoludur:

http://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list

temelde, o zaman func_num_args () onlar sizi geçti kaç argüman bulmak, ve sonra func_get_args () veya func_get_args (arayarak her biri olsun) diyoruz, parametre olmadan, her zamanki gibi işlev bildirmek. Bu kolay :)