website/errors/argument.printf.md
<?php declare(strict_types = 1);
$name = 'world';
printf('%s is %d years old', $name);
The number of format placeholders in the printf format string does not match the number of values passed. printf requires exactly as many value arguments as there are placeholders in the format string. A mismatch will result in missing values or ignored extra arguments at runtime.
In the example above, the format string '%s is %d years old' contains 2 placeholders (%s and %d), but only 1 value ($name) is provided.
Pass the correct number of arguments to match the placeholders:
<?php declare(strict_types = 1);
$name = 'world';
-printf('%s is %d years old', $name);
+printf('%s is %d years old', $name, 25);
Or adjust the format string if fewer values are intended:
<?php declare(strict_types = 1);
$name = 'world';
-printf('%s is %d years old', $name);
+printf('%s says hello', $name);