Nel mio cms faccio uso della libreria mbstring per gestire stringhe multibyte nel caso del set di caratteri UTF-8.

In pratica invece di usare substr() ad esempio, c'è mb_substr(), invece di strpos() mb_strpos() e così via.

Può capitare (per ora non mi è capitato, ma non si sa mai) che la libreria "mbstring" non sia stata attivata e quindi necessito che, con tutti i pericoli che ne possono derivare ma magari non è il caso se non si usa utf-8, tutte le chiamate a mb_strpos() siano redirezionate alla strpos() liscia, e così via per tutte le funzioni mb_xxx che uso.

E faccio così:

Codice PHP:
if(!function_exists('mb_internal_encoding'))
{
    eval(
'function mb_strlen($a) {return strlen($a);}');
    
// ...
    // ...
    // ...

Il caso di strlen() è il più fortunato perchè accetta un numero fisso di argomenti, ma ci sono altre funzioni che ne accettano 1 o 2 opzionali, ed in quel caso il PHP mi spara un Warning.

Come gestire il caso di numero di argomenti variabili? Possibilmente in un'unica riga senza invocare func_get_args() et company, anche se non vedo come?