Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    22

    gestione degli errori della funzione call_user_func_array

    Salve a tutti,
    qualcuno mi potrebbe dire un modo per gestire gli errori nell'inserimento dei paramentri della funzione call_user_func_array()..

    cioè un modo notificare che la funzione richiamata nel primo paramentro non è definita?

    Grazie mille
    p.s. se ci sono domande fate pure...

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    No, ma puoi sempre fare un

    if(function_exists($func) && is_array($params)){
    call_user_func_array($func,$params);
    }else{
    //errore
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    22
    ok scusate.. riformulo..

    call_user_func_array(array($class, $method), $param);

    io lo vorrei usare così, non esattamente con delle funzioni ma con un'istanza di una classe con relativo method e parametri di relativi a quel metodo.

    Se per esempio io inserisco per $class una "non istanza" oppure un metodo non definito in quella classe la funzione mi da errore. Ecco io vorrei gestirlo questo errore, anche se non distinguo il perchè di tale errore mi basta gestire in modo più elegante il fatto che i parametri della funzione call_user_func_array sono in qualche modo sbagliati..

    Come posso fare?
    Grazie mille

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Usi if(is_object($class) && method_exists($method)){}

    Non c'e' un modo piu' "elegante", call_user_func_array puo' restituire solo NULL se i parametri non sono corretti, o FALSE se fallisce qualcosa dopo la verifica dei parametri.
    Ma non puoi affidarti a quel NULL, perche' se anche la funzione che chiami restituisce NULL, non puoi distinguerli.

    Puoi solo fare un trucco - se tu sai che la funzione che gli passi deve restituire sempre qualsiasi valore tranne NULL/FALSE (ne devi essere sicuro al 100%), puoi controllare il valore del return di call_user_func_array(). Se e' NULL, c'e' stato qualche problema..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.