2009-10-22 2 views
12

가변 인수를 받아들이고 sprintf()에 전달하는 함수를 작성하고 싶습니다. 예를 들어가변 인수 목록을 sprintf()에 넘김

:

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

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

내가 PHP에서이 작업을 수행하려면 어떻게합니까?

답변

21
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); 
} 

$args 임시 변수가 필요합니다을 사용 func_get_args 5.3 이전 PHP 버전에서 함수의 인수 목록에서 사용할 수 없기 때문에 .

+0

'vsprintf'는 정말 좋은 생각입니다! – knittl

+0

오, 나는 vsprintf에 대해 몰랐다. 고마워요 :) – Rob

+0

vsprintf 모든 방법을 –

0

를 검색 할 수는 방법입니다 func_get_arg() 또는 func_get_args()를 호출하여 각 인수를 얻습니다. 즉 쉽게 :

관련 문제