2010-03-08 3 views
10

¿Cómo crear una función PHP solo visible dentro de un archivo? No visible para archivos externos. En otras palabras, algo equivalente a la función estática en C¿Cómo crear una función PHP solo visible dentro de un archivo?

+0

Cuando se incluyen archivos en PHP es como si usted está realizando adiciones juntos, en C/C++ que está "importando" de las variables/funciones/clases. – rook

Respuesta

9

No hay forma de que una función solo sea visible dentro de un archivo. Pero, puedes hacer cosas similares.

Por ejemplo, cree una función lambda, asignarlo a una variable, y desarmar que cuando el hecho:

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

$value = $func(); 

unset($func); 

Esto es siempre que su guión es de procedimiento.

También puede jugar con los espacios de nombres.


Su mejor opción es crear una clase, y hacer que el método privado

+1

Las funciones de cierre/lambda (tenga en cuenta que estas requieren al menos php 5.3) son probablemente su única opción, además de volver a pensar en su necesidad de ocultar la función de otros archivos. Probablemente no necesites hacer esto. – meagar

3

Cree una clase y hacer que el método privado.

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

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

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

Use namespace para aplicar su propia visibilidad.

En el mundo de PHP, espacios de nombres están diseñados para resolver dos problemas que autores de bibliotecas y aplicaciones cuando cree reutilizables elementos de código como clases o funciones:

  1. conflictos de nombres entre el código usted crea, y las clases/funciones/constantes internas de PHP o clases/funciones/constantes de terceros.
  2. Capacidad para alias (o acortar) Extra_Long_Names diseñada para aliviar el primer problema, mejorando la legibilidad del código fuente.
Cuestiones relacionadas