Capitulos de este wiki
  1. 1 Control de la ejecución
  2. 2 Funciones de usuario
  3. 3 Clases

Control Ejecucion y Funciones - Funciones de usuario

2 - Funciones de usuario

[editar]
Curso gratis creado por Carlos Castillo. Extraido de: http://www.tejedoresdelweb.com/307/article-1069.html
24 de Octubre de 2005
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();

}; }
[editar]

Sé el primero en opinar


Cursos gratis relacionados con 'Control Ejecucion y Funciones'

Las estructuras de control son las típicas: if, for, do, while, switch. La diferencia más... Más »
Este libro presenta el cúmulo de los elementos dispersos sobre la materia de Recursos Humanos,... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
Muchas personas me han escrito preguntando ¿Y cómo hago para implementar el Sistema? Aquí muestro... Más »
Un exhaustivo conjunto de ensayos y artículos que recorren la década de 1990 y los... Más »

Autor y licencia de 'Control Ejecucion y Funciones'


Curso gratis de Carlos Castillo. Extraido de: http://www.tejedoresdelweb.com/307/article-1069.html CopyLeft
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.