Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Sei que usando isset() para verificar tamanho de uma string e mais rápida do que strlen()!
exemplo:
$valor = "copa de 2014 no brasil";
if(!isset($valor[6])){
echo "quantidade certinha de caracteres";
}else{
echo "por favor máximo de 6 caracteres";
}
Agora queria saber, quando uma variável possui um índice de natureza! aonde fica o índice para verificar o tamanho da string?
exemplo:
$valor = array('cor' => "azul", 'id' => "0214", 'estado' => "Rio de Janeiro");
if(!isset($valor['cor'][6])){
echo "quantidade certinha de caracteres";
}else{
echo "por favor máximo de 6 caracteres";
}
Está correto o exemplo acima??
mais neste caso o isset ta verificando se a string tem 6 caracteres correto!?
exatamente, se tiver 6 caracteres ele vai retornar "true"
????
desculpe, mas percebem o "equívoco" ?
Sei que usando isset() para verificar tamanho de uma string e mais rápida do que strlen()!
isset é uma função que verifica se uma variável existe. Também pode ser usada para verificar se um determinado índice de array existe
strlen retorna o tamanho da string... a quantidade de caracteres
os scripts acima, segundo o que se propõe, são errôneos..
>
????
desculpe, mas percebem o "equívoco" ?
Sei que usando isset() para verificar tamanho de uma string e mais rápida do que strlen()!
isset é uma função que verifica se uma variável existe. Também pode ser usada para verificar se um determinado índice de array existe
strlen retorna o tamanho da string... a quantidade de caracteres
os scripts acima, segundo o que se propõe, são errôneos..
tentei responder seguindo a linha de raciocínio do código enviado por ela, fiz testes, e funciona corretamente, senão não teria postado a resposta, de certo que a informação de que o isset é mais rapido que o strlen carrece de fontes, e se fosse fazer algo do tipo não faria dessa forma, usaria o strlen que é maneira correta de se fazer.
if (strlen($valor['cor']) == 6)){ echo "quantidade certinha de caracteres";}
o php trata strings numa variável como um array
exemplo:
$foo = 'bar';echo $foo[1]; // imprime "a"
Independente disso, não é adequado usar o isset() para esse caso.
Além do mais é inconsistente:
$foo = 'bar';if(isset($foo[6])){}// retorna falso
$foo = 'bar1234567';if(isset($foo[6])){}// retorna verdadeiro, porém, a string possui "mais que 6 caracteres"
Vide o script original
$valor = "copa de 2014 no brasil";if(!isset($valor[6])){ echo "quantidade certinha de caracteres";}else{ echo "por favor máximo de 6 caracteres";}
O script verifica se a sétima posição no array existe
copa de 2014 no brasil
Os arrays no PHP iniciam com 0, portanto, o 7º é o 6º.
A string possui 22 caracteres:
$valor = "copa de 2014 no brasil";echo strlen($valor);
correto!
Falei que o uso do isset era mais rápido pois vi post dizendo isso http://www.daviferreira.com/posts/11-dicas-de-php-que-talvez-voce-nao-conheca
agora se era um uso correto não sabia mesmo, vlw pelas dicas pessoal abraços
seu codigo fica correto assim
$valor = array('cor' => "azul", 'id' => "0214", 'estado' => "Rio de Janeiro");
if(isset($valor['cor'][6])){ // retirar o !
echo "quantidade certinha de caracteres";
}else{
pois ao colocar o "!" você está negando a afirmativa do isset ai vai dar errado! ;)