2010-12-01 5 views
1

좋아요, 이상하게 들리지만 두 개의 매개 변수를받는 함수를 만들어야합니다. 첫 번째 매개 변수는 문자열이고 두 번째 매개 변수는 배열 (문자열 포함)입니다.배열 값에 해당하는 가변 개수의 매개 변수를 사용하여 함수를 호출하는 방법은 무엇입니까?

이 함수는 sprintf을 호출합니다. 내 첫 번째 매개 변수는 $format이고 내 배열은 다양한 $args에 해당합니다.

가능하면 어떻게해야합니까?

감사합니다!

답변

4

글쎄 vsprintf() 기능을 원합니다.

+0

예, 꽤 많이 있습니다. PHP는 거의 모든 기능을 제공합니다. –

+1

annoyingly 실제로 배열의 변형이 존재하지 않는다면 OP가 내장 된 * 함수에 대해 원하는 것을 성취 할 수있는 함수를 가지고 있지는 않습니다. 사용자 정의의 경우,'call_user_func_array()'를 사용할 수 있습니다. – Orbling

+0

@Orbling Nah, vsprintf 정확히 내가 뭘 찾고 있었는지 :) 감사합니다 Orbling! – AlexV

2

오블링이 대답 한 것처럼이 특별한 경우에는 vsprintf가 필요합니다.

그러나 일반적으로 가변 개수의 매개 변수를 사용하여 함수를 호출하려면 여러 개의 인수 (가변 인수 개수)를 허용하려는 함수 내에 func_get_args()을 사용할 수 있습니다. 이 함수는 (함수 내부에서 호출 될 때) 함수를 호출하는 동안 전달 된 모든 매개 변수를 포함하는 배열을 반환합니다.

+0

+1 예, PHP에서 놀랍게도 거의 사용하지 않는 가변 인수 및 익명 함수/콜백을 처리하기위한 전체 기능 집합이 있습니다. 참조 : http://uk.php.net/manual/en/ref.funchand.php – Orbling

+1

@Orbling 감사합니다. 그렇습니다. 흥미로운 기능이 너무 많습니다. 나는이 기능에 대해 알게 된 첫날에 너무 행복했습니다. 나에게 너무 행복하게 해주는 또 다른 기능은 마법 기능이 http://php.net/manual/en/language.oop5.magic.php로 설정되었다는 것입니다. 이 질문은 http://stackoverflow.com/questions/4143722/solved-php-faked-multiple-inheritance-having-object-attributes-set-in-fake-pa를 참조하십시오. 어떻게'__get()'이 나를 돕는 지보십시오. 어려운 상황. –

+0

그립을 얻으려면 실제로 많은 유용한 기능이 있습니다. PHP에서 내가 가장 좋아하는 것은'callbacks * '을 사용하는'array_ *'함수와 같은 함수형 프로그래밍이다.'create_function()'과 함께 사용하면 데이터 처리를 매우 간단하게 할 수있다. – Orbling

관련 문제