On Sunday 16 June 2002 12:46 am, Gerard Samuel wrote:
> Im trying to make a dynamic printf().
> By that I mean ->
>
> function this($foo, $bar)
> {
>     if (strlen($bar) == '0')
>     {
>          print($foo);
>     }
>     else
>     {
>         printf($foo, $bar);
>     }
> }
>
> Now it works if there is one argument passed, but it doesn't when there
> is more than one.
>
> $str = 'should';
> this('This %s work', $str);  // work
>
> $str = 'is, a';
> this('This %s just %s test', $str);  // doesn't work
>
> So I guess, arguments passed to it has to be physical arguments, and not
> represented in a string.
> Am I banging my head on a wall with this??
> Thanks

Try this :

<?php

function this($string,$params="")
{
        if ($params!="")
        {
                eval("printf(\$string,$params);");
        }
        else
                print $string;

        return;
}

this('Hello, World :)<br />');
this('Hello %s<br />','"World"');
this('Hello %s %s<br />','"Wide", "World"');

?>

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to