Avevi dimenticato di riaggiungere gli spazi e gli apostrofi splittati:
l'ho convertita in questa ed ora funziona:
Codice PHP:
function customucwords(&$passedvar) {
    
$split explode(" "$passedvar);
    
$count count($split);
    
    
$temp "";
    for (
$i=0$i<$count$i++) {
        
$split[$i] = ucwords(strtolower($split[$i]));
        if (
$i!=&& $i!=$count$temp .= " ";
        
$temp .= $split[$i];
    }
    
$split explode("'"$temp);
    
$count count($split);
    
    
$temp "";
    for (
$i=0$i<$count$i++) {
        
$split[$i] = ucwords($split[$i]);
        if (
$i!=&& $i!=$count$temp .= "'";
        
$temp .= $split[$i];
    }
    
$passedvar $temp;
}

$str "ANTOnella D'ELIA";
customucwords($str);
echo 
$str//outputs: Antonella D'Elia