funzione function_exists php

Nel linguaggo php la funzione function_exists mi permette di verificare se una funzione è stata già definita in uno script oppure no.

La sintassi

function_exists(nome)

L'unico argomento è il nome della funzione da verificare.

Il comando restituisce il valore booleano true se la funzione nome già esiste oppure false se non è ancora stata definita.

A cosa serve? E' molto utile nella programmazione ricorsiva o modulare. Se si tenta di creare una funzione già definita o se la funzione non esiste, l'interprete php va in errore. Per questo motivo è opportuno verificare l'esistenza della funzione durante l'esecuzione dello script.

    Un esempio pratico

    In uno script A creo la funzione prova

    1. function prova($string) {
    2. echo($string);
    3. return $string;
    4. }

    Lo script A viene eseguito più volte dallo script B.

    La prima volta tutto funziona correttamente. Lo script A definisce la funzione prova e la richiama.

    La seconda volta, invece, lo script A tenta di definire nuovamente la funzione prova ma quest'ultima già esiste e il php va in errore.

    Per evitarlo, sposto la definizione della funzione in una struttura condizionale.

    1. if (!function_exists(prova)) {
    2. function prova($string) {
    3. echo($string);
    4. return $string;
    5. }
    6. }

    In questo modo, se la funzione non esiste, lo script la definisce.

    Se invece già esiste, lo script non la definisce di nuovo.

    Nota. In questo esempio ho negato il risultato della funzione function_exists con il simbolo del punto interrogativo. Quindi, se la funzione esiste la funzione function_exists è true ma il simbolo ! la trasforma in false.

    Esempio 2

    In quest'altro script richiamo la funzione prova() soltanto se è già stata definita.

    1. if (function_exists(prova)) {
    2. $x=prova($stringa);
    3. }

    In questo modo, sono sicuro di richiamare la funzione soltanto nel caso in cui esiste.

    Evitando così il rischio di incappare in un errore.

    E così via.



    Per scrivere un commento

    knowledge base

    Il linguaggio Php

    FAQ