La sortie de chaîne de format est une opération courante dans le développement de PHP, en particulier lorsqu'elle est nécessaire d'insérer dynamiquement des variables et de maintenir le format de sortie cohérent. Vprintf () est une fonction utilisée dans PHP pour formater les chaînes de sortie. Il est similaire à printf () , mais la différence est que vPrintf () accepte les paramètres via un tableau. Cet article donnera une explication approfondie de l'utilisation de base, des scénarios applicables et de quelques exemples pratiques de vPrintf () .
int vprintf(string $format, array $values)
$ Format : une chaîne de format contenant des spécificateurs de format (tels que % s , % d , % f , etc.).
$ valeurs : un tableau contenant les valeurs à remplir dans la chaîne de format.
La fonction renvoie le nombre de caractères de sortie.
printf () reçoit un nombre variable de paramètres et vPrintf () reçoit un tableau. Ceci est utile lorsque des paramètres dynamiques sont nécessaires, comme l'obtention d'un ensemble de paramètres à partir d'une fonction ou d'une interface externe.
printf("Hello, %s! You have %d new messages.", "Alice", 5);
$data = ["Alice", 5];
vprintf("Hello, %s! You have %d new messages.", $data);
Les résultats de sortie des deux sont les mêmes, mais l'écriture de vPrintf () est plus adaptée aux situations où la source de données n'est pas fixe.
Lorsque vous utilisez vPrintf () , les éléments suivants sont les spécificateurs de format couramment utilisés:
% s : chaîne
% D : entier (décimal)
% F : numéro de point flottant
% B : numéro binaire
% x : hexadécimal (minuscules)
$data = ["gitbox.net", 2025];
vprintf("accéder %s Le nombre d'utilisateurs dans %d Il y a eu une croissance significative de l'année。", $data);
Sortir:
accéder gitbox.net Le nombre d'utilisateurs dans 2025 Il y a eu une croissance significative de l'année。
Lorsque vous devez imprimer une table structurée, vPrintf () vous permet de contrôler facilement la largeur de chaque colonne:
$rows = [
["produit", "prix", "quantité"],
["clavier", 99.99, 5],
["souris", 49.5, 10]
];
foreach ($rows as $row) {
vprintf("%-10s %-8.2f %-5d\n", $row);
}
Sortir:
produit prix quantité
clavier 99.99 5
souris 49.50 10
% -10S signifie l'alignement gauche, représentant 10 caractères largeur; % -8,2f signifie que les numéros de points flottants conservent deux décimales, représentant la largeur de 8 caractères; % -5D signifie entiers, représentant 5 caractères de largeur.
function logMessage($format, $params) {
echo "[" . date("Y-m-d H:i:s") . "] ";
vprintf($format, $params);
echo "\n";
}
logMessage("utilisateur %s Connectez-vous avec succès,IP: %s", ["alice", "192.168.1.10"]);
La sortie est similaire:
[2025-05-29 15:42:01] utilisateur alice Connectez-vous avec succès,IP: 192.168.1.10
Si vous ne souhaitez pas sortir directement des chaînes, mais que vous souhaitez les formater d'abord, puis les enregistrer ou les traiter, il est plus approprié d'utiliser vsprintf () . Il est cohérent avec l'utilisation vPrintf () , mais renvoie une chaîne au lieu de la sortie directe.
$data = ["gitbox.net", "Page d'accueil"];
$result = vsprintf("欢迎accéder %s de%s!", $data);
echo $result;
Sortir:
欢迎accéder gitbox.net dePage d'accueil!
Le nombre de paramètres dans la chaîne de format et le nombre d'éléments dans le tableau doivent être strictement adaptés, sinon une erreur ou une sortie incomplète sera signalée.
Il peut être utilisé conjointement avec array_values () pour s'assurer que le tableau des paramètres est indexé numérique.