CZy takie coś zadziała - instrukcja if

Witam. pętla ma za zadanie sprawdzic czy $a=12. Jeżeli tak to $b=4

Czy zadziała ten kod?

<?php

$a=12;

if($a=12)

{

$b=4;

}

?>

nie zadziała, powinno być

if ($a==12)

w zasadzie zadziała, efekt będzie dokładnie taki jak opisałeś, ale mechanizm zupełnie inny niż tego oczekujesz, pokoleji:

<?php

    $a=12; //przypisuje zmiennej $a wartość 12

    if($a=12) //ponownie przypisuje zmiennej $a wartość 12 i jeżeli przypisanie się powiedzie wykonuje blok instrukcji 

    {

    $b=4; //przypisuje zmiennej $b wartość 4

    }

    ?>

to co powinieneś był zmienić, by działało tak jak oczekujesz, to zmiana if($a=12) na if($a==12)

Dokładnie:

= to operator przypisania, a == to operator porównania

Jeszcze wtrącę się -

To nie jest pętla, a instrukcja warunkowa!

Jaka jest różnica pomiędzy nimi?

W przypadku takiego warunku parser sprawdzać będzie tylko jeden raz, w czasie wykonywania skryptu, linijka po linijce od góry dokumentu.

Pętlą zaś możemy spowodować, że jeśli za pierwszym razem liczba nie jest taka jak trzeba (analogia do Twojego przykładu),

to można przeprowadzić wykonywanie pewnych instrukcji dopóki nie osiągnie tej wartości, której oczekujesz (tzw. iteracja).