Essa é para vc que é novo no PHP ou que pretende tirar a certificação ZCE e esta com receio sobre umas funções pouco usadas em seu dia a dia... O sprintf é uma delas.... Opa opa espera ai? O sprintf não é um printf? Sim, mas printf "echoa" o resultado, enquanto que sprintf retorna.
Vamos ao entendimento então!
A função recebe basicamente 2 argumentos, o primeiro é o formato que a string deve aparecer e o segundo a própria string, por exemplo:
printf("Eu tenho %d anos", 23);
Veja que %d representa um valor inteiro, se você tentar usar uma float ou um real ele não irá funcionar, veja uma tabela com alguns dos tipos aceitos:
Tipo | Descrição |
---|---|
%b | Argumento considerado um inteiro; apresentado com um numero binário |
%c | Argumento considerado um inteiro; apresentado com um valor correspondente em ASCII |
%d | Argumento considerado um inteiro; apresentado com um numero decimal |
%f | Argumento considerado numero de ponto flutuante; apresentado com um numero de ponto flutuante |
%o | Argumento considerado um inteiro; apresentado com um numero octal |
%s | Argumento considerado um string; apresentado com um numero string |
%u | Argumento considerado um inteiro; apresentado com um numero decimal não assinado |
%x | Argumento considerado um inteiro; apresentado com um numero hexadecimal em letras minusculas |
%X | Argumento considerado um inteiro; apresentado com um numero hexadecimal em letras maiusculas |
Caso você queira utilizar mais de um valor pode passa os argumentos separados por virgulas repeitando a sequencia que foram declarados:
- <?php
- printf("Eu sou o %s e tenho %d anos", "PV", 23);
- ?>
Tudo muito legal não é? Se vc veio aqui para garantir que esta pronto para ZCE então lá vai um QUIZ tipico da prova para vc responder:
What will the following code print out?
- <?php
- echo sprintf('"%4d"', ord('a'));
- ?>
[Resposta: " 97"]
[Explicação: No format o número 4 representa um espaço em branco(a equerda pq é positivo, se negativo seria a direita) as aspas são apenas para exibir o d e o % vc ja conhece e por fim a função ord() retorna o valor ASCII do caracter, e o valor ASCII de a é = 97]
Nossa vou ter que decorar todas as representações ASCII do alfabeto para não errar uma questão dessa na prova da ZEND? Poxa fiquei preocupado.
ResponderExcluirMarco fique trânquilo pois na prova provavelmente vc teria respostas multipla escolha tipo assim:
Excluira) " a"
b) " 97"
c) "10"
d) "000a"
Vc teria que trabalhar por eliminação concorda? o "a" não pode ser pois sabemos que ord gera o ASCII do valor então n seria letra a resposta, o "c" também não poderia estar certo pois sabemos que um número no format(4) representa um espaço, logo só restou a resposta "b" que é a correta concorda? Espero ter ajudado.