Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Meu if reconhece qualquer coisa menos o zero.
abaixo o codigo:
function alerta($valor)
{
if(!empty($valor))
{
if($valor == 0)
{
echo 'Nao';
}
else
{
echo 'Sim';
}
}
}
$var=1;
alerta($var);
Quando a variavel e zero ela nao funciona.mesmo botando elseif nao funcio,
e tambem tratando com string tbm nao funciona.
alguem pode me ajudar?
O melhor jeito entao seria
<?php
function alerta($valor){
//if(!empty($valor)) {
if($valor == 0){
echo 'Nao';
}
elseif($valor == ')
{
echo 'Sim';
}
else
{
echo ' --';
}
//}
}
$var = 0;
alerta($var);
?>
Entaun nao teria como fazer o tratamento de erro por fora e sim apenas por dentro, no caso do else.
abraço
A questão do PHP retornar 0 como vazio e culpa do "cast BURRO automático do PHP" (palavras do João Batista). Uma solução para isto (também de autoria do João Batista), é utilizar a função abaixo para verificar:
function notStupidEmpty( &$value ){
return is_null( $value ) || ( is_string( $value ) && !strlen( $value ) );
}
Para utilizar, vamos verificar
$x = 0;
function notStupidEmpty( &$value ){
return is_null( $value ) || ( is_string( $value ) && !strlen( $value ) );
}
var_dump(empty($x));// true
var_dump(notStupidEmpty($x)); // false
Carlos Eduardo
O problema é que quando você faz uma verificação com a função empty(); o zero é considerado como "nada"(em branco)