Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jcalebe

Como o PHP consegue fazer isso?

Recommended Posts

Olá!

Visitando a desciclopédia, percebi esse código que me parecia estúpido, mas testei e funcionou:

 

<?php
if ('6 Galinhas' + '4 Gansos' == '10 Aves')
echo 'Expresão Verdadeira!';
else
echo 'Expresão Falsa!'
//Vai retornar 'Expressão Verdadeira!'.


if ('6 Galinhas' + '3 Gansos' == '10 Aves')
echo 'Expresão Verdadeira!';
else
echo 'Expresão Falsa!'
//Vai retornar 'Expressão Falsa!'.
?>

 

Pode alterar os valores dos números que vai funcionar beleza. E pode substituir também os valores das galinhas, gansos e aves por quaisquer outras palavras.

 

Isso tem alguma utilidade prática?

O.O

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

var_dump('6 Galinhas' + '4 Gansos');//int(10)
var_dump('6 Galinhas' + '3 Gansos');//int(9)

 

mais uma para 'elucidar'

	echo intval( '7 bizarrices' );//7

http://br.php.net/intval

Compartilhar este post


Link para o post
Compartilhar em outros sites

An example of PHP's automatic type conversion is the addition operator '+'. If either operand is a float, then both operands are evaluated as floats, and the result will be a float. Otherwise, the operands will be interpreted as integers, and the result will also be an integer. Note that this does not change the types of the operands themselves; the only change is in how the operands are evaluated and what the type of the expression itself is.

fonte: http://php.net/manual/en/language.types.type-juggling.php

 

 

If the string does not contain any of the characters '.', 'e', or 'E' and the numeric value fits into integer type limits (as defined by PHP_INT_MAX), the string will be evaluated as an integer. In all other cases it will be evaluated as a float.

 

The value is given by the initial portion of the string. If the string starts with valid numeric data, this will be the value used. Otherwise, the value will be 0 (zero). Valid numeric data is an optional sign, followed by one or more digits (optionally containing a decimal point), followed by an optional exponent. The exponent is an 'e' or 'E' followed by one or more digits.

fonte: http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion

 

 

Particularmente, prefiria que o PHP desse erro em vez de fazer essa conversão besta :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

$galo = "galinha";
$gansos = "gansos";
$soma_galo = "6";
$soma_seila_uq = "4";
$total = $soma_galo + $soma_seila_uq;
if($galo == "galinha" && $gansos = "gansos" && $total = "10"){
echo 'bota tua msg';
}else{
echo'Seus galo morreu';
}

tente assim , deve dar :ermm:

Compartilhar este post


Link para o post
Compartilhar em outros sites
Alaerte Gabriel ? tu testo meu codigo ?

 

Putz... pra que ? :o

 

Olha, o autor do tópico não quer que ele funcione, ele apenas ficou curioso com tamanha bobagem do PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É realmente bizarro pra não dizer estúpido. Isso teria alguma utilidade?

 

Claro que tem, nesse instante vejo duas:

 

1. Causar a criação de tópicos perguntando o "porquê" de tal comportamento.

2. Causar bugs estranhos, tão estranhos quanto o próprio comportamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1. Causar a criação de tópicos perguntando o "porquê" de tal comportamento.

2. Causar bugs estranhos, tão estranhos quanto o próprio comportamento.

 

kkkkkkkkkkkkkkkk... Boa João !

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.