Re : henryk dot kwak at gmail dot com
<?php function message($m)
{
echo "$m <br />\r";
return true;
}
$k=false;
if (message("first")&& $k && message("second")){;}
// will show
//first
class
$k=true;
if (message("first")&& $k && message("second")){;}
// will show
//first
//second
?>
if
A construção if é uma das mais importantes implementações de muitas linguagens, incluindo o PHP. Ela permite a execução condicional de fragmentos de código. O PHP implementa uma estrutura if que é similar aquela do C:
if (expressao)
instrucoes
Como descrita na seção sobre expressões , expressao é avaliado por seu contexto Booleano. Se expressao for avaliado como TRUE, o PHP executará instrucoes, e se for avaliado como FALSE, ele será ignorado. Maiores informações sobre a avaliação para FALSE podem ser encontradas na seção Convertendo para Booleanos .
Os exemplos a seguir mostrariam que a é maior que b se $a for maior que $b:
<?php
if ($a > $b)
echo "a é maior que b";
?>
Normalmente você vai querer ter mais que uma instrução seja executado condicionalmente. E é claro, não há necessidade de englobar cada instrução com uma cláusula if. Em vez disso, você pode colocar várias instruções em um agrupamento de comandos. Por exemplo, este código mostraria a é maior que b se $a for maior que $b, e então atribuiria o valor de $a para $b:
<?php
if ($a > $b) {
echo "a é maior que b";
$b = $a;
}
?>
Comandos if podem ser aninhados infinitamente dentro de outros comandos if, o que faz com que você complete a flexibilidade para a execução condicional de várias partes do seu programa.
if
28-Sep-2008 03:03
25-Sep-2008 06:24
@henryk (and everybody):
You should put your arguments in order by *least* likely to be true. That way if php is going to be able to quit checking, it will happen sooner rather than later, and your script will run (what amounts to unnoticeably) faster.
At least, that makes the most sense to me, but I don't claim omniscience.
28-Aug-2008 05:22
RE: chrislabricole at yahoo dot fr on 09-Aug-2008 05:53
You're referring to the ternary operator.
http://php.net/manual/en/language.operators.comparison.php
14-Aug-2008 08:50
RE: henryk dot kwak at gmail dot com's comment from 04-May-2008 05:01
I think you made a mistake.
For maximum efficiency, assuming each expression requires the same amount of processing, the expression that is least likely to be true should come first for expressions connected by && (and). This will reduce the probability that later expressions will need to be evaluated.
The opposite is true for || (or). If the most likely expression comes first, then the probability of needing to evaluate later expressions is reduced.
10-Aug-2008 03:53
You can do IF with this pattern :
<?php
$var = TRUE;
echo $var==TRUE ? 'TRUE' : 'FALSE'; // get TRUE
echo $var==FALSE ? 'TRUE' : 'FALSE'; // get FALSE
?>
05-May-2008 03:01
When you use if command with many condidions like
if ( expr1 && expr2 && expr3 && etc. )
it is more effective to put expressions in special order
Firstly you should put that, which has the biggest
probability to occur.
This is because PHP checks each condition in order from left to right and it takes some time to check each condition.
10-Mar-2008 01:41
re: #80305
Again useful for newbies:
if you need to compare a variable with a value, instead of doing
<?php
if ($foo == 3) bar();
?>
do
<?php
if (3 == $foo) bar();
?>
this way, if you forget a =, it will become
<?php
if (3 = $foo) bar();
?>
and PHP will report an error.
09-Jan-2008 12:54
This is aimed at PHP beginners but many of us do this Ocasionally...
When writing an if statement that compares two values, remember not to use a single = statement.
eg:
<?php
if ($a = $b)
{
print("something");
}
?>
This will assign $a the value $b and output the statement.
To see if $a is exactly equal to $b (value not type) It should be:
<?php
if ($a == $b)
{
print("something");
}
?>
Simple stuff but it can cause havok deep in classes/functions etc...
