questa è la prima cosa che mi è venuta in mente, dovrebbe essere anche ottimizzata perché il ciclo si stoppa alla metà del valore originale (oltre la metà è inutile trovare un divisore prechè non ce ne saranno mai)

Codice PHP:
<?php
function checkPrimo($n){
    if (
$n==|| $n=='')
        return 
false;
    if (
$n==|| $n==2)
        return 
true;
    
    for (
$i=2$i<=ceil($n/2); $i++){
        if (
$n%$i==0)    return false;
    }
    return 
true;
}

for (
$k=1;$k<=10;$k++){
    echo (
checkPrimo($k))?"{$k} è primo":"{$k} non è primo";
    echo 
"
"
;
}
?>






p.s. ho usato solo for e if come hai detto anche perché altro non serve