The best thing to do is usually simply try doing whatever you want and see what happens. When you don't understand why something doesn't go wrong, go to the php doc for whatever function / language construct you are using, in this case [man]printf[/man], which in turn would tell you to see [man]sprintf[/man] as well.
printf() requires one function argument per placeholder (unless you are using numbered arguments). As such there can be no ambiguities.
printf($heading, $subjectmatter);
printf($heading, $month);
printf($heading, 'something else');
# but this will not work: number of arguments does not match the format of the $heading string.
printf($heading, '1', '2');