non ho provato e probabilmete è una sciocchezza, ma ....
se al posto di
if($x%2==0)
scrivi
if($x = !$x)
e al posto di $x = 0 scrivi $x = false;
dovresti poter ottenere lo stesso risultato con una grande semplificazione per l'interprete, inoltre puoi togliere x++; dal fondo del ciclo
PS: non ho provato
PS2: $x = !$x è proprio scritto cosi, non è un errore la mancanza del secondo uguale![]()