user318466 user318466 - 1 month ago 9
PHP Question

How to prefix a positive number with plus sign in PHP

I need to design a function to return negative numbers unchanged but should add a

sign at the start of the number if its already no present.


Input Output
+1 +1
1 +1
-1 -1

It will get only numeric input.

function formatNum($num)
# something here..perhaps a regex?

This function is going to be called several times in
so the quicker the better.


Thank you all for the answers. I must tell the
based solution is really fast.

Answer Source

You can use regex as:

function formatNum($num){
    return preg_replace('/^(\d+)$/',"+$1",$num);

But I would suggest not using regex for such a trivial thing. Its better to make use of sprintf here as:

function formatNum($num){
    return sprintf("%+d",$num);

From PHP Manual for sprintf:

An optional sign specifier that forces a sign (- or +) to be used on a number. By default, only the - sign is used on a number if it's negative. This specifier forces positive numbers to have the + sign attached as well, and was added in PHP 4.3.0.