2011-08-22 2 views
2

나는 이런 식으로 뭔가 할 수있는 내가 포맷 내 C# 문자열을 복제하는 것을 시도하고있다 : 나는 PHP에서이 작업을 수행 할 수 있도록하려면,하지만PHP에 상응

Console.Writeline("My name is [0]. I have been a [1] for [2] days.", "bob", "member", "12") 

를 내가 아는 한 이 함수를 닮은 함수는 sprintf()뿐입니다. 당신은 예를 들어, 같은 자신의 기능을 쓸 수

echo function("My name is [0]. I have been a [1] for [2] days.", "bob", "member", "12") 
+3

의 sprintf()''잘못은 무엇을? C#의 문자열 형식과 거의 동일합니다. –

+0

C# 버전은 유형에 관계 없습니다. 당신이 원하지 않는다면 당신은 데이터 형이나 숫자 대 문자열에 대해 아무것도 지정할 필요가 없습니다. 가장 간단한 형식으로 식별 할 필요가있는 것은 특정 데이터 항목을 넣을 형식 문자열의 위치입니다. – Joe

+0

3 개가 아닌 2 개의 문자를 사용해야하므로 동일하지 않은 것보다 글을 적게 작성해야합니다. 그런 다음 수레와 다른 것들을 포맷하는 것은 명백한 이점입니다. – fixmycode

답변

5

위의 것과 동일 기능이 있나요

<?php 
function Format($format /*, ... */) { 
    $args = func_get_args(); 
    return preg_replace_callback('/\[(\\d)\]/', 
     function($m) use($args) { 
      // might want to add more error handling here... 
      return $args[$m[1]+1]; 
     }, 
     $format 
    ); 
} 

$x = 'a'; 
$y = 'b'; 
echo Format('1=[1], 0=[0]', $x, $y); 
1

당신은 문자열의 변수 인라인 수 :

$frob = "John"; 
$foo = "Hello $frob!";