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