Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Control Ejecucion y Funciones - Funciones de usuario

Control Ejecucion y Funciones - Funciones de usuario

 ----- 
Creative Commons Curso gratis de Carlos Castillo - 24 de Octubre de 2005
Temas Relacionados: PHP
2. Funciones de usuario
Definiciones

Las funciones de usuario en PHP pueden definirse usando el keyword function(). Toda función debe ser definida sólo una vez, no pudiendo ser re-definida en el futuro. Hasta PHP 3.0 sólo puede usarse una función que haya sido definida antes de ser usada, pero en PGP 4.0 esta limitación ya no es efectiva.

function imprime_arreglo($arreglo) {

echo "<UL>n";

foreach ( $arreglo as $item ) {

echo "<LI>item\n";

};

echo "</UL>n";

}

Las funciones pueden o no retornar algo. Ese algo puede ser cualquier cosa mientras se trata de un sólo valor. Para retornar múltiples valores es necesario retornar un arreglo y recibirlo usando list().

function imprime_archivo($archivo) {

$lineas = file( $archivo );

foreach( $lineas as $linea ){

echo htmlspecialchars($linea) . "\n";

};

return count($lineas);

}

function stat_simple($archivo) {

return array( filesize($archivo), filectime($archivo) );

}

$arch = "prueba.txt";

list( $size, $ctime ) = stat_simple( $arch );

$fecha_hora = date( "d/m/y h:i", $ctime );

echo "El archivo $arch pesa $size bytes y fue modificado el $fecha_hora";

Argumentos

Los argumentos pueden ser cualquier número de argumentos, mezclando arreglos y escalares; todos ellos son pasados por valor, es decir, la función recibe una copia de los valores, sin poder modificar las variables originales.

function suma_rara($a,$b) {

$a--;

$b++;

return $a+$b;

} $x = 3;

$y = 5;

$resultado = suma_rara( $x, $y );

echo "$x + $y = $resultado\n"; # 3 + 5 = 8

Para pasar argumentos por referencia y por lo tanto poder modificarlos, se antepone un signo ampersand (&) al argumento en la función:

function elevar_al_cuadrado( &$a ) {

$a = $a * $a;

}; $x = 15;

elevar_al_cuadrado( $x );

echo $x; # 225

Se puede pasar una lista variable de argumentos a una función en PHP 4, mediante el uso de func_num_args() y func_get_args.

function variables() {

$argc = $func_num_args();

$argv = $func_get_args();

echo "Son $argc argumentos\n".

foreach( $argv as $num => $arg ) {

$type = gettype( $arg );

echo "Argumento $num, tipo $type, valor $arg\n";

};

}

variables( "casa", 9, array( "k", 6, "x" ) );

Un argumento cualquiera puede tener asignado un valor por omisión. Los argumentos que tienen valores por omisión siempre deben ser los primeros de la lista de argumentos.

function ls ( $directorio = "." ) {

$dirHandle=opendir($directorio);

while ($fname = readdir($dirHandle)) {

echo "$fname\n";

} closedir($dirHandle);

}; ls(); # Lista directorio actual

ls("/tmp"); # Lista el temporal

Alcance de variables

Fuera de una función, todas las variables pertenecen al mismo espacio de nombres, incluyendo todo tipo de archivos o módulos que sean incluídos.

Dentro de una función, las variables son locales a menos que se diga lo contrario usando global():

$archivo_datos = "datos.txt";

function lee_archivo_mal() {

$arch = $archivo_datos;

return file( $arch );

};

function lee_archivo_bien_version_1() {

$arch = global( $archivo_datos );

return file( $arch ); }; function lee_archivo_bien_version_2() {

global( $archivo_datos ); # Importa el nombre al espacio

return file( $archivo_datos ); }; function lee_archivo_bien_version_3() {

return file( $GLOBALS["archivo_datos"] );

};

[Nota para programadores PERL] En PHP es como si cada variable dentro de una función hubiera sido declarada con el operador my() de Perl.

Un último tipo de variable está constituído por las variables estáticas, que pertenecen a una función y no cambian de valor.

function corta_recursion();

static $numero_llamadas = 0; # Sólo se ejecuta una vez

$numero_llamadas++;

if( $numero_llamadas < 100 ) {

echo "Llamando recursivamente, nivel $numero_llamadas\n";

corta_recursion();

}; }
Tabla de contenidos
Autor y licencia de 'Control Ejecucion y Funciones - Funciones de usuario'
Carlos Castillo Extraído de: http://www.tejedoresdelweb.com/307/article-1069.html

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Los contenidos de este sitio pueden ser reproducidos solamente bajo estas condiciones. La licencia está respaldada con el registro de propiedad intelectual número 97.125 en Chile y otros países.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Control Ejecucion y Funciones - Funciones de usuario'

Las estructuras de control son las típicas: if, for, do, while, switch. La diferencia más... Más »
Hoy parece evidente que las funciones-poderes del Estado están llamadas a una colaboración y a... Más »
Anotaciones sobre funciones mateméticas.
Documento con fundamentos teóricos de control de accesos en redes telemáticas; se tratan temas como... Más »
En las épocas actuales en donde priman los aspectos económicos de la globalización, de la... Más »
¿Estás seguro de que deseas eliminar este capítulo?