BRUNOVC Postado Setembro 11, 2009 Denunciar Share Postado Setembro 11, 2009 Estou começando a estudar o PHP, e cheguei até esta função (strcmp).Só que eu não consigo entender a lógica dela... Por exemplo, tenho o código abaixo:<? $var1 = strcmp("teste", "Teste"); $var2 = strcmp("testes", "testes"); $var3 = strcmp("Testes", "teste"); echo $var1 . "<br>" . $var2 . "<br>" . $var3; ?>O primeiro caso retornará 1, indicando que a primeira string é maior que a segunda. Por que?O segundo caso retornará 0, pos são idênticas.O terceiro caso retornará -1, indicando que a primeira string é menor que a segunda. Por que?Como o PHP encara a letra maiúscula dentro dessa função?Desde já, muito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Setembro 11, 2009 Denunciar Share Postado Setembro 11, 2009 O manual serve para isso: http://php.net/strcmpRetorna < 0 se str1 é menor do que str2 ; > 0 se str1 é maior do que str2 , e 0 se forem iguais.Note que esta função diferencia maiúsculas e minúsculas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 BRUNOVC Postado Setembro 11, 2009 Autor Denunciar Share Postado Setembro 11, 2009 Tá, isso eu entendi.Mas se eu colocar: $var3 = strcmp("T", "t"); ele retorna -1. No que o PHP se baseia para dizer que "T" (maiúsculo) é menor que "t" (minúsculo)? Seria algo como o código ascii, ou coisa do gênero? Da mesma forma, se eu colocar: $var3 = strcmp("Testes", "teste");o PHP também retorna -1.Essa é a minha dúvida. O que faz ele retornar "Testes" < "teste", sendo que "Testes" tem um caracter a mais e mesmo em código ascii (a soma de todos os caracteres) ele é maior?Muito obrigado pela atenção. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Setembro 11, 2009 Denunciar Share Postado Setembro 11, 2009 O manual fala em comparação binária, logo, provavelmente ela deva ser feita caractere a caractere, nesse caso a quantidade de caracteres pode não influenciar. Agora lendo os comentários parece que dependendo da configuração do servidor o resultado que a função retorna pode ser modificado... enfim, acho que só pegando os fontes do PHP pra saber o porque esse é o retorno da função... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 BRUNOVC Postado Setembro 12, 2009 Autor Denunciar Share Postado Setembro 12, 2009 Opa, beleza então...e desculpa pela demora em responder...valeu pela resposta rápida... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
BRUNOVC
Estou começando a estudar o PHP, e cheguei até esta função (strcmp).
Só que eu não consigo entender a lógica dela... Por exemplo, tenho o código abaixo:
O primeiro caso retornará 1, indicando que a primeira string é maior que a segunda. Por que?
O segundo caso retornará 0, pos são idênticas.
O terceiro caso retornará -1, indicando que a primeira string é menor que a segunda. Por que?
Como o PHP encara a letra maiúscula dentro dessa função?
Desde já, muito obrigado.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.