2010-03-08 4 views
10

Come creare una funzione PHP visibile solo all'interno di un file? Non visibile al file esterno. In altre parole, qualcosa di equivalente alla funzione statica in CCome creare una funzione PHP visibile solo all'interno di un file?

+0

Quando si includono i file su PHP è come se li si desidera aggiungere i insieme, in C/C++ che si sta "importando" le variabili/funzioni/classi. – rook

risposta

9

Non esiste un modo per rendere effettivamente visibile una funzione solo all'interno di un file. Ma puoi fare cose simili.

Ad esempio, creare una funzione lambda, assegnare ad una variabile, e non impostato quando il fatto:

$func = function(){ return "yay" }; 

$value = $func(); 

unset($func); 

Questo è previsto che lo script sia procedurale.

È anche possibile giocare con i namespace.


La cosa migliore è quella di creare una classe, e rendere il metodo privato

+1

Le funzioni di chiusura/lambda (si noti che richiedono almeno php 5.3) sono probabilmente l'unica opzione, oltre a ripensare la necessità di nascondere la funzione da altri file. Probabilmente non hai davvero bisogno di farlo. – meagar

3

Creare una classe e rendere il metodo privato.

<?php 
class Foo 
{ 
    private $bar = 'baz'; 

    public function doSomething() 
    { 
     return $this->bar = $this->doSomethingPrivate(); 
    } 

    private function doSomethingPrivate() 
    { 
     return 'blah'; 
    } 
} 
?> 
0

Utilizzare namespace, per applicare la propria visibilità.

Nel mondo PHP, namespace sono progettati per risolvere due problemi che autori di librerie e applicazioni incontrano quando si crea riutilizzabili elementi di codice come le classi o funzioni:

  1. Nome collisioni tra codice crei e classi/funzioni/costanti PHP interne o classi/funzioni/costanti di terze parti.
  2. Possibilità di alias (o abbreviare) Extra_Long_Names progettati per alleviare il primo problema, migliorando la leggibilità del codice sorgente.
Problemi correlati