Verifica se una Funzione appartiene ad una Classe

  • Creatore Discussione Creatore Discussione Mr. PHP
  • Data di inizio Data di inizio

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Non riesco a trovare il modo per controllare se una Funzione appartiene ad una determinata Classe. Qualcuno sa come fare ??? Grazie !
Ho prvato con
PHP:
is_a() e instanceof
Solo che verificano un oggetto nella Classe non una Funzione o sbaglio ?
 
Ultima modifica:
Un altra cosa, dato che sto finendo di fare il mio router per il Framework o meglio sto aggiornando il Framework, ti faccio un esempio del mio problema:
PHP:
namespace Nome;

/* La pagina a sua volta ha un namespace ora come faccio a richiamare La classe della pagina_1 dato che non posso usare USE per definire il namespace della pagina_1 perchè il tutto e in una classe chiamata Router. Anche se avevo in mente di usare i Trait ma e meglio di no */

require_once pagina_1;

Pagina->home();
 
Potresti trasformare i metodi in statici, oppure qual'è il problema nel dichiarare una normale istanza con new, o forse ho capito male?

Come gestisci la classe router?
 
Scusa nell esempio ho sbagliato in effetti gia uso il metodo statico. Il problema è che se definisco un namespace in entrambe le pagine per poter richiamare la classe in essa ho bisogno di fare:
PHP:
use pagina\Pagina;

Pagina::home();
in poche parole devo definire il namespace con la classe che devo usare.
 
Se nell'altra pagina router includi o richiami già la classe perché non includi direttamente quella? Sennò continuo a non capire il problema, come vorresti richiamare i metodi scusa?
 
Pagina Router:
PHP:
namespace Router;

class Router (){
  
 function __construct(){
  
    require_once pagina.php;
    
    Pagina::home();   
 

 }

}
Pagina Richiamata:
PHP:
namespace pagina;

class Pagina(){

  static function home(){

    /* Contenuto Home Page */

  }

}
Ora se tolgo il namespace nelle pagine richiamate va tutto OK. Ma se voglio applicare il namespace anche nelle pagine richiamate Non va perche devo dichiarare il namespace della pagina richiamata più la classe che devo usare
PHP:
use pagina\Pagina;

Pagina::home()
Solo che l'USE non puo essere inserito nelle classi o nelle funzioni. Spero di essere stato chiaro.
 
Le classi sono dichiarate in modo errato (non con ()) inoltre per usare una namespace devi includere la pagina che la contiente, quindi o lo fai dal router o nella pagina nella quale lo richiami
 
In effetti :P Scusa, e che lo scritte veloci e non ho controllato :). Cmq fa Niente Tolgo il namespace nelle pagine richiamate.
 

Discussioni simili