Duvida php $x++/ ++$x

kazail

Membro
Iniciei-me a cerca de uma semana no php e ando a matutar na cabeça o significado/utilidade de,

$x++ ou ++$X, nao eprcebo se ele atribui o valor a X, ou faz o valor de x +1 ou se serve so para "guardar/proteger" o valor.


Tenhu seguido os tutoriais de uma pagina(nao seis se posso dizer o nome), e por ex:

<?php
$cars=array("bmw",toyota");
$arrlength=count($cars);

For($x=0; $x<$arrlenght;$x++) <---de que serve o $x++ aqui?
{
echo $cars[$x];
echo "<br>";
}
?>

ja li que serve para poupar bytes,etc mas ainda fiquei mais comfuso.Pelo menos como, quando utilizar e utilidade.

Obrigado.
 
O $x++ nesse ciclo for serve para aumentar o valor de $x em uma unidade. Assim o ciclo percorre todo o array. $x++ é equivalente a $x = $x + 1. Quase nunca programei em PHP, mas em C++ a diferença entre x++ e ++x é que no primeiro caso o incremento é feito depois de avaliar o valor da variável, e no segundo caso é feito antes. Se não estiveres a avaliar o valor de x++ ou ++x, e pretenderes apenas incrementar a variável, não faz diferença usar um ou outro.
 
obrigado pela resposta,
acho que ja percebi e uma especie de contador para x no array? adicionandolhe uma posição nova a cada valor intruduzido, corecto?
 
Ele vai percorrer o loop consoante o numero de elementos que o array tem e em cada "volta" incrementa a variavel $x.

Como ja foi dito, é a mesma coisa que escreveres $x = $x+1.

Ou seja na 1a volta lê $cars[0] e na 2a $cars[1].
 
Nesse caso do for, ele dá uma "volta" e aumenta o contador. Se fosse ++$x, ele aumentava o contador 1º e depois dava a "volta".

Se tivesses tipo:

$x = 10;

umafuncao($x++);

Passava 10 para a função, executava-a e cá fora depois disto tudo metia $x a 11.

umafuncao(++$x);

Mete 1º o x a 11, passa 11 para a função e executa-a.
 
Última edição:
a diferença entre x++ e ++x é a seguinte:

Código:
<?php
$x = 7;
$y = $x++;

echo "versão $x++ $y=".$y." $x=".$x";

$x = 7;
$y = ++$x;

echo "versão ++$x $y=".$y." $x=".$x";
?php>

resultado:

>versão $x++ $y=8 $x=8
>versão ++$x $y=7 $y=8

Tal como foi dito anteriormente, e bem, uma versão retorna o valor de $x antes do incremento e outro retorna o valor de $x depois do incremento. No teu caso é indiferente, pois em lado nenhum tentas aceder ao valor da variável $x na mesma linha de código do incremento.
Esta "feature" vem do C, e consequentemente do Java, logo por arrasto todas as outras linguagens de programação também a tem.

-----------

Quanto ao ciclo for tem a seguinte sintaxe:
Código:
for (<instrução a ser executada no inicio (esta instrução é executada apenas uma vês)>;
 <condição de saída do ciclo>;
 <instrução a ser executada no fim de cada iteração>)

A ter em atenção, a condição de saída é validada após a instrução de fim de cada iteração ser executada.


Cumpts
 
Última edição:
Back
Topo