for ($contador = 0 && $restodadivisao = $contador % 2 ; $contador <= 100 ; $contador ++ ) {
if ($restodadivisao == 1) {
echo "#$contador" . PHP_EOL;
}
}
for ($contador = 0 && $restodadivisao = $contador % 2 ; $contador <= 100 ; $contador ++ ) {
if ($restodadivisao == 1) {
echo "#$contador" . PHP_EOL;
}
}
Danilo, Tudo bem com você?
Vamos lá.
for ($contador = 0 && $restodadivisao = $contador % 2; $contador <= 100 ; $contador ++ ) {
Aqui tem 2 pontos:
Primeiro que esta primeira parte do laço for, só é avaliada uma vez, na primeira vez que roda o laço for, ou seja a variável $restodadividsao vai assumir o valor 0 e não vai mudar.
Vide: https://www.php.net/manual/pt_BR/control-structures.for.php
A primeira expressão (expr1) é avaliada (executada), uma vez, incondicionalmente, no início do laço.
Segunda ponto, se você for realizar mais de uma declaração aqui, a forma correta é separar por virgula.
Mas para fazer com que esta atribuição seja feita em todas as iterações do laço, você pode jogar na ultima expressão e separada por virgula, deste modo:
for ($contador = 0; $contador <= 100; $contador++, $restodadivisao = $contador % 2) {
Todas as vezes esta expressão na terceira parte do laço for será executada e o valor de $restodadivisao será atualizado.
Por fim tem um erro no echo, a váriavel de contador não precisa estar entre aspas.
Segue o código completo, testado:
for ($contador = 0; $contador <= 100; $contador++, $restodadivisao = $contador % 2) {
if ($restodadivisao == 1) {
echo $contador . PHP_EOL;
}
}
Por favor se sanou tua dúvida, marcar este tópico como solucionado, ou se preciso postar dúvidas. Um abraço