Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Funzione is_callable

  1. #1

    Funzione is_callable

    if(!is_callable($callback, false, $callableName)) {
    throw new Exception("$callableName is not callable " .
    "as a parameter to onspeak");
    return false;
    }

    $this->_onspeak = $callback;
    }

    is_callable verifica se una variabile può essere definita come una funzione.

    Nel codice sopra quindi, is_callable($callback, false, $callableName) $callback è la variabile, false indica aql codice che non deve controllare se $callback può essere una funzione o un metodo. Non mi è chiaro il significato di $callableName

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    is_callable($callback, false, $callableName)

    $callback è una stringa contenente il nome della funzione o un array che ha in posizione 0 il nome della classe (per metodi statici) o un oggetto e il posizione 1 il nome del metodo

    Il false indica che deve esistere la funzione/metodo. Se true controlla solo che il nome sia sintatticamente corretto per una funzione/metodo.

    $callableName viene riempita con il nome 'completo' con cui testa la funzione. Per un metodo si ha sempre nome della classe::metodo (indipendentemente dal fatto che sia statico o meno), mentre per le funzioni si ha il nome della funzione.

    Un esempio PHP 5.4
    Codice PHP:
    <?php
    class foo{
        static function 
    Pippo(){}
        public function 
    Paperino(){}
    }
    function 
    Topolino(){}

    $obj = new foo();

    $val is_callable([$obj,'Pippo'],false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable(['foo','Pippo'],false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable('Pippo',false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable([$obj,'Paperino'],false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable(['foo','Paperino'],false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable('Paperino',false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable(['fooA','Gastone'],false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable('Gastone',false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable('Topolino',false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable(['class','Gastone'],false,$callableName)?'Si':'No';
    echo 
    "E' chiamabile $callableName$val
    "
    ;

    $val is_callable(['class','Gastone'],true,$callableName)?'Si':'No';
    echo 
    "E' sintatticamente corretto $callableName$val
    "
    ;

    $val is_callable('Gastone',true,$callableName)?'Si':'No';
    echo 
    "E' sintatticamente corretto $callableName$val
    "
    ;

    ?>
    Produce
    codice:
    E' chiamabile foo::Pippo? Si
    E' chiamabile foo::Pippo? Si
    E' chiamabile Pippo? No
    E' chiamabile foo::Paperino? Si
    E' chiamabile foo::Paperino? Si
    E' chiamabile Paperino? No
    E' chiamabile fooA::Gastone? No
    E' chiamabile Gastone? No
    E' chiamabile Topolino? Si
    E' chiamabile class::Gastone? No
    E' sintatticamente corretto class::Gastone? Si
    E' sintatticamente corretto Gastone? Si
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  3. #3
    Grazie per avermi risposto. Ora cerco di leggere con calma quanto hai scritto e nel caso faccio altre domande. Io questa classe collection non è che l'ho capita tropo bene!!!

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.