2010-01-05 4 views
0

모두, 긍정적 인 문자열에 "+"를 추가하는 PHP 함수가 있습니까?빨리 + 문자열에 더하기 [PHP]

function(4) // returns +4 
function(1.0) // returns +1.0 
function(-1) // returns -1 
function(0) // returns +0 

감사

편집 : 소요 시간 및 문자열을 반환하고자합니다.

+1

1.0이 일반 1 일 뿐이므로 PHP가 그 존재를 기억할 이유가 없으므로 정확히이 것을 얻을 수있을 것이라고 생각하지 않습니다. 당신이 원한다면 문자열로 보내야하지만, 덕 타이핑 덕분에 함수의 코드가 다를 필요는 없다. –

+0

무엇입니까? 이것은 반환 값이 문자열인지 아닌지를 결정합니다. – Skilldrick

+0

지적한대로 정수는 사용되지 않습니다. 실제로는 문자열을 사용합니다. 즉 "0.00", "1.34"이다. – dotty

답변

3
당신과 함께 (들)의 printf를 사용할 수

다음

$number = sprintf('%+f', $number); 
// "-0" => +0.000000 
// "1.2" => +1.200000 

또는

function formatPositive($number) 
{ 
    return ($number > 0) ? "+$number" : $number; 
    // "0" => "0" 
    // "-0" => "-0" 
    // "1.2" => "+1.2" 
} 

또는

function formatPositive($number) 
{ 
    switch(true) { 
     case !is_numeric($number): // "Beer" => "NaN" 
      $number = 'NaN'; 
      break; 
     case $number == 0: // "-0" = "±0" 
      $number "±0"; 
      break; 
     case $number > 0: // "1.23" => "+1.23" 
      $number = "+$number"; 
      break; 
     default: // "-1.23" => "-1.23" 
      break; 
    } 
    return "$number"; 
} 
+0

닫기,하지만 그는 '+ 0'을 말하기 때문에'> ='이어야합니다. 또한 삼항 연산자의 두 번째 부분은''$ number ''가 아니어야합니다. 그래서 함수는 양의 경우 문자열이고 대 문자열이면 정수를 일관되게 반환합니다. (오, 삼진 형식을 사용하는 +1은 멋지군요.) –

+0

"+"를 반환하는 "nothing"을 반환합니다. – dotty

+1

@Doug Zero는 양수가 아니므로 + imho를 반환하지 않아야합니다. 어떤 것이라도 ±가 있어야합니다. PHP는 필요에 따라 자동으로 타입 변환하기 때문에 반환 유형을 결정하기 위해 OP에 맡깁니다. – Gordon

-2

function make_positive($int){ 
    if($int >= 0){ 
     return "+".$int; 
    }else{ 
     return $int; 
    } 
} 

합니까 PHP 자체가 기능

을했다?

편집 : 변경된 함수 이름.

+1

내가보기에 유일한 문제는 양수이면 함수가 문자열을 반환하고 음수이면 정수를 반환한다는 것입니다. 아마도 일관된 형식을 반환해야합니다. 맞습니까? –

+6

또한'is_foo'라는 함수는'boolean' 값을 반환해야한다고 제안합니다. –

+0

편집 됨, thanks nikc. – dotty

9
$i = 3; 
printf('%+d ', $i); 

$i = -3; 
printf('%+d ', $i); 

인쇄 +3 -3

+2

값이 float 인 경우 별개의 줄이 필요합니다. –

0

sprintf의 PHP 언어 참조 포지티브 부호 정수의 형식 지정자 "% + D"를 제시 (필요한 경우도 sprintf() 작동).